相关疑难解决方法(0)

JavaScript保证是单线程的吗?

众所周知,JavaScript在所有现代浏览器实现中都是单线程的,但是它是在任何标准中指定的还是仅仅是传统的?假设JavaScript始终是单线程的,这是完全安全的吗?

javascript concurrency

588
推荐指数
8
解决办法
12万
查看次数

在继续之前等待一个功能完成的正确方法?

我有两个JS函数.一个叫另一个.在调用函数中,我想调用另一个,等待该函数完成,然后继续.所以,例如/伪代码:

function firstFunction(){
    for(i=0;i<x;i++){
        // do something
    }
};

function secondFunction(){
    firstFunction()
    // now wait for firstFunction to finish...
    // do something else
};
Run Code Online (Sandbox Code Playgroud)

我提出了这个解决方案,但不知道这是否是一个聪明的方法.

var isPaused = false;

function firstFunction(){
    isPaused = true;
    for(i=0;i<x;i++){
        // do something
    }
    isPaused = false;
};

function secondFunction(){
    firstFunction()
    function waitForIt(){
        if (isPaused) {
            setTimeout(function(){waitForIt()},100);
        } else {
            // go do that thing
        };
    }
};
Run Code Online (Sandbox Code Playgroud)

这是合法的吗?是否有更优雅的方式来处理它?也许用jQuery?

javascript jquery delay pausing-execution

144
推荐指数
7
解决办法
38万
查看次数