から返された約束を使用しようとしています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');
}
DRYではないのが嫌いです。
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();
}
かなり乱雑になっています。あなたは絵を手に入れます。ここで何かが足りないことを願っています。