【发布时间】:2012-09-19 20:25:58
【问题描述】:
我无法让 always() 触发我在 jQuery 中的 Deferred。 done() 和 fail() 工作正常,但不知何故我一定做错了什么,因为 always() 永远不会触发。
使用 $.当它起作用时......
var Validator = {
validate_something: function(value) {
var deferred = new $.Deferred();
deferred.resolve();
return deferred.promise();
},
validate_date: function(value) {
var deferred = new $.Deferred();
deferred.resolve();
return deferred.promise();
}
};
function doneCallback() {
console.log("$.then.done() executed");
}
function failCallback() {
console.log("$.then.fail() executed");
}
function alwaysCallback() {
console.log("$.then.always() executed");
}
var validationPromise = $.when(
Validator.validate_date(6).then(doneCallback, failCallback, alwaysCallback),
Validator.validate_something(1).then(doneCallback, failCallback, alwaysCallback)
);
validationPromise.done(function() {
console.log("$.when.done() executed");
});
validationPromise.fail(function() {
console.log("$.when.fail() executed");
});
validationPromise.always(function() {
console.log("$.when.always() executed");
});
【问题讨论】:
标签: javascript jquery jquery-deferred promise