0

deferred.then()のドキュメントには、doneCallbacks がA function, or array of functions, called when the Deferred is resolved.

.then(new Array(getData2, showDiv))私がどちらか を書くとき、 または.then([getData2, showDiv]) それらのどれも呼び出されません。

正しい構文は何ですか?

アップデート

配列の構文は、.then(new Array(getData2(), showDiv()))または .then([getData2(), showDiv()])かっこを使用する必要がありますか?

http://jsfiddle.net/JSw5y/894/を参照してください

4

1 に答える 1

-1

これは jQuery のバグのようです

簡単な回避策;

var CallbackHandler = (function () {
    var callbacks = [];

    return {
        'add': function (fn) {
            callbacks.push(fn);
            return this;
        },
        'executor': function () {
            var calledBy = this;
            $.each(callbacks, function () {
                this.call(calledBy);
            });
        }
    };

})();

CallbackHandler
    .add(function () {
        // first callback
    })
    .add(function () {
        // second callback
    });

// Called as:
$.when({a: 1})
 .then(CallbackHandler.executor);
于 2012-10-02T12:07:29.500 に答える