![](/img/trans.png)
[英]delay execution of a jQuery/javascript function until certain condition is met
[英]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);
制作一個記分板變量,該變量在每個函數完成時計數,然后在每個函數之后調用foo4。 如果分數未達到正確值,則foo4應該退出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.