我有一个webworker在后台做某些事情。完成后,它会触发一个事件。我希望暂停我的程序的执行,直到我得到该事件被解雇。总之,我需要等待该事件发生,在它被解雇后我需要恢复其余的功能。我一直在网上搜索,我找不到合适的解决方案。
var worker = new Worker( workInBackground );
var workInBackground = function () {
//some stuff
$(document).trigger("done")
}
我需要暂停“完成”才能被触发,然后继续我的调用堆栈。我真的很感激这里的一些帮助
答案 0 :(得分:-1)
只是一个计时器,检查一个变量。
var checkWorkDone = false;
var workController = setInterval(function(){ CheckWork() }, 200);
function CheckWork() {
console.log("checkWorkDone = " + checkWorkDone );
if(checkWorkDone == true)
{
goOnToDoNextJob();
}
}
// when checkWorkDone == true, the work is done, so stop workController;
function goOnToDoNextJob() {
clearInterval(workController);
}
// this is just for checking, set var work done after 5 sec
var testWorker = setInterval(function(){ DoJob() }, 5000);
function DoJob()
{
checkWorkDone = true;
clearInterval(testWorker);
}