コードはかなりまっすぐな序文です:
var handleNextPressedDeferred = $.Deferred();
$('input:button').live('click',function(){
console.log('resolving');
return handleNextPressedDeferred.resolve();
});
handleNextPressedDeferred.pipe(function(){
console.log('rejecting');
return $.Deferred().reject();
});
var handleNextPressedPromise = handleNextPressedDeferred.promise();
handleNextPressedPromise.done(function(){
console.log('done');
});
handleNextPressedPromise.then(function(){
console.log('then');
});
handleNextPressedPromise.fail(function(){
console.log('fail');
});
元のボタンクリックで遅延が解決された後、パイプ関数によってそれを拒否することに興味があります。
ボタンがクリックされたときに期待される結果は次のとおりです。
- 解決
- 拒否する
- 不合格
ボタンがクリックされたときの実際の結果は次のとおりです。
- 解決
- 拒否する
- 終わり
- それから
ここで正しく理解していないことは何ですか?私はこれの何百万ものバリエーションを試しましたが、期待どおりに機能させることができませんでした。