[英]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();
});
因為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.