簡體   English   中英

依次運行一個函數:回調問題

[英]Run one function after another: callback issue

我試圖了解為什么函數lazy_2不能這樣運行:

function lazy_1 (callback) {
    alert('lazy_1');
}

function lazy_2 () {
    alert('lazy_2');   
}

lazy_1(lazy_2);

(通過在另一個函數完成后執行jquery函數 。)

jQuery方法效果很好:

function lazy_1 (callback) {
    alert('lazy_1');
}

function lazy_2 () {
    alert('lazy_2');   
}

$.when( lazy_1() ).done(function() {
    lazy_2();
});

http://jsfiddle.net/5LL69/

因為lazy_1()不調用它的回調-實際上沒有人調用。 它需要看起來像這樣的回調才能被調用:

function lazy_1 (callback) {
    alert('lazy_1');
    callback();
}

function lazy_2 () {
    alert('lazy_2');   
}

lazy_1(lazy_2);

上面的第二個代碼塊等效於:

lazy1();
lazy2();

因為您只是要jQuery $.when()運行一個函數,然后再運行不涉及任何承諾的另一個函數(所有同步代碼)。

您必須實際調用callback

function lazy_1 (callback) {
    alert('lazy_1');
    callback();
}

function lazy_2 () {
    alert('lazy_2');   
}

lazy_1(lazy_2);

暫無
暫無

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

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