0

好的,我在这里倒退

我知道 deferred 在这里的工作原理

function strong() {
    var def = new $.Deferred();
    console.log("strong running");
    setTimeout(function() {
      def.resolve("strong");
    }, 2000);
    return def.promise();
}

function stronger(x) {
    var def = new $.Deferred();
    display("Stronger: '" + x + "'");
    setTimeout(function() {
      def.resolve("stronger");
    }, 2000);
    return def.promise();
}

strong().then(stronger);

http://jsfiddle.net/8njW4/

我的问题是在引入 deferred 之前,这是如何使用回调完成的?

4

1 回答 1

0

您可以将回调作为函数参数传递:

function strong(callback) {
    console.log("strong running");
    setTimeout(callback, 2000);
}

function stronger(x, callback) {
    console.log("Stronger: '" + x + "'");
    setTimeout(callback, 2000);
}

strong(function() {
    stronger(3, function() {});
});
于 2013-11-12T01:18:51.340 回答