【发布时间】:2013-04-04 19:28:43
【问题描述】:
positionService.call(new PositionCallback(){ onPositionUpdate(Position position)
{
this.position=position;
if (isLoaded){
refreshDataWithPosition();
}
});
dataService.call(new DataCallback(){ onDataUpdate(Data data)
{
//does this need synchronization?
updateTable(data,position);
isLoaded=true;
});
我上面有以下代码。它同时加载 GPS 地理位置和所有一些数据。如果 GPS 数据首先更新,updateTable 将考虑到这一点进行更新。如果 GPS 数据第二次更新,它将调用 refreshDataWithPosition 来刷新其内容。我想更新有或没有位置的表格以获得更灵敏的体验。
GWT 异步回调如何与单线程(或者可能是多线程 javascript 引擎)一起工作? 这里的危险是在 updateTable 完成后但 isLoaded 设置为 true 之前调用位置回调。在这种情况下,表格不会被位置数据刷新。
【问题讨论】:
标签: gwt concurrency single-threaded