从Web worker获取返回值

Phi*_*enn 3 javascript web-worker

现在,我已经有了它,它的工作原理:

var myWebWorker = new Worker('myWebWorker.js');
myWebWorker.onmessage = function (myEvent) {
    $('#Print').append('Return value: ' + myEvent.data + "<br>");
};
myWebWorker.postMessage(2);
Run Code Online (Sandbox Code Playgroud)

我的问题是:我可以这样做吗?

var result = myWebWorker.postMessage(2);
Run Code Online (Sandbox Code Playgroud)

因为我需要web worker同步 - 换句话说,给出一个返回值,直到你完成后才返回.

编辑1:

Web worker正在使用openDatabaseSync事务对本地数据库进行插入/选择.

编辑2:

我的问题似乎是Cocoa Touch,而不是JavaScript. 这是一个有人在StackOverflow上发布的聪明黑客.

编辑3:

这是一个更好的黑客.

Den*_*ret 5

Web worker的重点是在不阻止UI的情况下委派任务.它们无法同步.

你可能并不需要的任务是同步的,但你需要设计围绕事件和异步任务的代码就像你不能设计任何JavaScript的应用程序,也只有同步操作任何严重的GUI应用程序.

  • 好吧,我不是iOS的专家,而是从Cocoa应用程序调用JavaScript来更新本地数据库,然后期望JavaScript同步使用Web worker,这看起来像一个奇怪的设计.您的问题可能有一个更简单的解决方案. (2认同)