等待webworker完成

时间:2015-02-10 21:52:40

标签: javascript jquery

我有一个webworker在后台做某些事情。完成后,它会触发一个事件。我希望暂停我的程序的执行,直到我得到该事件被解雇。总之,我需要等待该事件发生,在它被解雇后我需要恢复其余的功能。我一直在网上搜索,我找不到合适的解决方案。

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

//some stuff

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

我需要暂停“完成”才能被触发,然后继续我的调用堆栈。我真的很感激这里的一些帮助

1 个答案:

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