javascript - jQuery/Javascript 延迟执行一个函数,直到几个函数完成

标签 javascript jquery

我有一个棘手的情况。我需要延迟一个函数的执行,直到几个函数完成。虽然以下内容在正常情况下会起作用:

    $.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);

http://jsfiddle.net/mattball/nVFnv/

关于javascript - jQuery/Javascript 延迟执行一个函数,直到几个函数完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11852004/

相关文章:

javascript - 使用 jQuery 从 API 显示天气

javascript - 在页面加载时打开一个弹出窗口并在其他任何地方单击时隐藏 + 在调整窗口大小时动态跟随其父级

javascript - Jquery获取页面最大高度

jquery - 为什么我的粘性导航不起作用?

javascript - 让我的用户脚本等待其他脚本加载

javascript - 谷歌认证死循环

JavaScript 构造函数/OOP

Javascript 倒计时进展缓慢?

javascript - 我的 URL 末尾的 ?reqp=1&reqr=... 是什么?恶意?

javascript - 如何在一个模板中识别多个表单?