我有一个棘手的情况。我需要延迟一个函数的执行,直到几个函数完成。虽然以下内容在正常情况下会起作用:
$.when(foo1(), foo2(), foo3()).then(function(){
//foo4();
});
我的情况有点不同。我不希望传递给 $.when()
的函数立即执行。 foo1-3
将在不久的将来通过其他方法执行。换句话说,我想在我选择的时间手动执行 foo1-3
。只有在 foo1-3
执行后(无特定顺序),foo4
才会运行。
我的直觉告诉我要深入研究 $.Deferred()
,但我还没有完全找到我需要的东西。有什么想法吗?
最佳答案
让 fooX
函数解析传递给 $.when
的延迟。
var d1 = $.Deferred();
var d2 = $.Deferred();
var d3 = $.Deferred();
function foo1() {
// do normal work, then
d1.resolve();
}
// same for other 2 functions
$.when(d1, d2, d3).then(foo4);
关于javascript - jQuery/Javascript 延迟执行一个函数,直到几个函数完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11852004/