繁体   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