Javascript 如何告诉JS等待。。。?

Javascript 如何告诉JS等待。。。?,javascript,Javascript,我知道有一种方法是这样的: setTimeout("functionA();",1250); 这可能会延迟我的进程,但问题是,函数有一些值要返回。当我使用这种方式时,它不会让我返回函数返回值: this.sth = setTimeout("functionA();",1250); 我的意思是,这不是我想要的结果。您应该创建一个函数b(),它可以: function functionB() { this.sth = functionA(); // do things with

我知道有一种方法是这样的:

setTimeout("functionA();",1250);
这可能会延迟我的进程,但问题是,函数有一些值要返回。当我使用这种方式时,它不会让我返回函数返回值:

this.sth = setTimeout("functionA();",1250);

我的意思是,这不是我想要的结果。

您应该创建一个函数b(),它可以:

function functionB() {
    this.sth = functionA();
    // do things with the returned value
}
你可以做:

setTimeout(functionA(functionB()), 1250);
并将
功能B
定义为:

function functionB(resultFromA) {
}
function
看起来像:

functionA(callback) {
    // do something useful
    callback(result);
}

setTimeout是一个异步操作。这意味着Function在超时后运行,但脚本的其余部分继续运行。新的javascript程序员经常犯这样的错误,认为脚本会在导致这种情况时暂停


如果您的目标是让脚本暂停,那么最好使用while循环或带有日期的for循环。这可能是个坏主意。暂停的纸条可能会对浏览器造成奇怪的影响,包括使整个浏览器在运行时暂停。这包括所有选项卡。这可能不是你想要的。更好的办法是像Garret提到的那样,使操作异步工作,但仍能实现您想要的。

我看到过使用for循环的解决方案,需要数千次/数百万次迭代。但是,请注意,如果使用不当,这可能会使浏览器无响应。

这似乎更令人困惑,而不仅仅是将返回值设置为变量,使用它有什么好处?