现在,我已经知道了,它可以正常工作:
var myWebWorker = new Worker('myWebWorker.js');
myWebWorker.onmessage = function (myEvent) {
$('#Print').append('Return value: ' + myEvent.data + "<br>");
};
myWebWorker.postMessage(2);
我的问题是:我可以代替吗?
var result = myWebWorker.postMessage(2);
因为我需要网络 worker 同步-换句话说,请提供一个返回值,并且也要等到您完成后再返回。
编辑1:
网络 worker 正在使用openDatabaseSync事务在本地数据库中进行插入/选择。
编辑2:
看来我的问题出在Cocoa Touch上,而不是JavaScript。
有人在StackOverflow上发布的Here's a clever hack。
编辑3:
这是a better hack。
最佳答案
Web Worker的目的是在不阻塞UI的情况下委派任务。 它们不能同步。
您可能不需要来同步任务,但是您需要围绕事件和异步任务设计代码,就像您无法仅通过同步操作来设计任何javascript应用程序或任何严肃的GUI应用程序一样。