Javascript 等待webworker完成

Javascript 等待webworker完成,javascript,jquery,Javascript,Jquery,我有一个网络工作者在后台做某些事情。完成后,它将触发一个事件。我想暂停程序的执行,直到触发事件。简言之,我需要等待事件发生,在它被触发后,我需要恢复我的其余功能。我一直在互联网上搜索,但找不到合适的解决方案 var worker = new Worker( workInBackground ); var workInBackground = function () { //some stuff $(document).trigger("done") } 我需要暂停以触发“完成”,然后继续我

我有一个网络工作者在后台做某些事情。完成后,它将触发一个事件。我想暂停程序的执行,直到触发事件。简言之,我需要等待事件发生,在它被触发后,我需要恢复我的其余功能。我一直在互联网上搜索,但找不到合适的解决方案

var worker = new Worker( workInBackground );
var workInBackground = function () {

//some stuff

$(document).trigger("done")
}

我需要暂停以触发“完成”,然后继续我的调用堆栈。我真的很想在这里得到一些帮助

只是一个计时器,检查一个变量

    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);
    }

如果
某些东西是同步代码,那么您的代码就可以了,但是如果它是异步的,比如Ajax,那么您需要将其设置为回调。那是你的案子吗?如果不知道在这两者之间你在做什么,就很难写出答案。@blex它是异步的。谢谢你的回复。我真的很感激伊托克,如果您仍然不知道该做什么,运行的是什么异步代码?类似于
setTimeout
$.ajax()
?“done”事件应该从它们(作为回调)触发,而不是从外部触发。解决方案取决于//某些东西的作用。如果需要更具体的帮助,则需要发布代码的其余部分。