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()])
括号?
答案 0 :(得分:-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);