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 之前调用位置回调。在这种情况下,表格不会使用位置数据进行刷新。