代码是非常直接的前言:
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');
});
在原始按钮单击解决延迟后,我有兴趣通过管道函数拒绝它。
单击按钮时的预期结果是:
- 解决
- 拒绝
- 失败
单击按钮时的实际结果是:
- 解决
- 拒绝
- 完毕
- 然后
我在这里没有正确理解什么?我已经尝试过一百万种变体,但无法按预期工作。