我正在尝试使用从Backbone.model.save()
. 实际上,根据规范,如果有效则返回一个 Promise,否则返回 false。无论类型如何,我都想在将来deferred.done()
和deferred.fail()
调用中使用返回值。像这样:
var promise = model.save();
$.when(promise).done(function() {
console.log('success!');
});
$.when(promise).fail(function() {
console.log('dang');
});
但是,$.when()
当通过一个 non-promise 触发时,done()
,所以,在上面,如果模型无效,$.when(false).done()
触发,你会得到“成功!”。
我知道我可以在 中使用success
和error
属性save()
,但是对于我的代码,done()
以后应用多个函数是有利的。毕竟,这就是承诺的力量。
所以,我只剩下:
var promise = model.save();
if (promise) {
$.when(promise).done(function() {
console.log('success!');
});
$.when(promise).fail(function() {
console.log('dang');
});
} else {
console.log('dang');
}
我讨厌不干燥。
var promise = model.save();
var fail = function() {
console.log('dang');
};
if (promise) {
$.when(promise).done(function() {
console.log('success!');
});
$.when(promise).fail(function() {
fail();
});
} else {
fail();
}
变得很乱。你得到图片。我希望我只是在这里遗漏了一些东西。