【发布时间】:2014-02-26 09:49:11
【问题描述】:
我有两个 JS 函数。一个叫另一个。在调用函数中,我想调用另一个函数,等待该函数完成,然后继续。所以,例如/伪代码:
function firstFunction(){
for(i=0;i<x;i++){
// do something
}
};
function secondFunction(){
firstFunction()
// now wait for firstFunction to finish...
// do something else
};
我想出了这个解决方案,但不知道这是否是一个聪明的方法。
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
};
}
};
这合法吗?有没有更优雅的方法来处理它?也许用 jQuery?
【问题讨论】:
-
firstFunction究竟做了什么使它异步?无论哪种方式 - 检查承诺 -
第一个函数是每 10 秒快速更新一个分数时钟。哪个...想一想,我想我们可以预先计算,然后通过 setTimeout 手动暂停第二个函数调用。也就是说,我仍然可以看到在其他地方拥有暂停能力的愿望。
-
你不需要暂停 - google for promises in jquery
-
@zerkms 承诺看起来很有趣!仍在调查浏览器支持...
-
我也有同样的问题。
标签: javascript jquery delay pausing-execution