首先,对不起我的英文......
也许这是胡说八道,但我有以下问题:
我有一个jquery事件调用...
$('#buttonX').click(function(){
function1();
alert(function2());
});
function1和function2调用同时执行Web SQL查询的Web Worker:
function2()
{
var dbSync = new Worker('dbSync.js');
var result;
dbSync.postMessage();
dbSync.onmessage = function (oEvent) {
result = oEvent.data;
console.log("result: " + result);
return result;
};
}
CODE dbSync.js:
var db = openDatabaseSync('mydb', '1.0', 'my database', 3 * 1024 * 1024);
self.onmessage = function(event) {
var numRecords;
db.transaction(function (tx) {
var results = tx.executeSql('SELECT * FROM foo ', []);
numRecords = results.rows.length;
self.postMessage(numRecords);
});
};
但是当点击'buttonX'时,执行的第一件事是警报......甚至在执行function1和function2之前。
我想这是因为Web Workers总是异步运行但是...有没有办法让所有进程同步?
...我已经在没有Web Worker的情况下测试了该进程,但是,不支持OpenDatabaseSync方法。
所以,任何建议都将受到赞赏。
提前致谢。