簡體   English   中英

一個函數的jQuery / Java延遲執行,直到多個函數完成

[英]jQuery/Javascript Delay Execution of a Function Until Several Functions Have Completed

我的處境很棘手。 我需要將一個函數的執行延遲到幾個函數完成為止。 在正常情況下,以下方法會起作用:

    $.when(foo1(), foo2(), foo3()).then(function(){
        //foo4();
    });

我的情況有些不同。 我不希望傳遞給$.when()的函數立即執行。 foo1-3將在不久的將來通過其他方法執行。 換句話說,我想在選擇的時候手動執行foo1-3 只有在執行foo1-3 (沒有特定順序)之后, foo4才會運行。

我的直覺告訴我要深入研究$.Deferred() ,但是我還沒有找到我需要的東西。 有任何想法嗎?

fooX函數解析傳遞給$.when fooX延遲。

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/

制作一個記分板變量,該變量在每個函數完成時計數,然后在每個函數之后調用foo4。 如果分數未達到正確值,則foo4應該退出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM