【发布时间】:2015-05-07 22:13:57
【问题描述】:
如何用另一个的解析状态来解析一个延迟对象。 请简单的例子和简单的解释(看到很多困难的)。
如果没有.done(..) 和.fail(..),我如何解决result 承诺与foo()?
var result = $.Deferred();
/**
* @returns {Deferred}
*/
var foo = function() {
// ... something that returns deferred object at random moment of time
};
foo()
.done(function(){result.resolve()})
.fail(function(){result.reject()})
;
setTimeout(function() {
result.reject();
}, 50);
setTimeout(function(){
console.log('Result is:', result.state());
}, 100);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
【问题讨论】:
-
它更复杂。
foo函数不能被修改,result可以通过许多其他方式解决。但是,如果foo已首先解决,result应该具有foo的分辨率。
标签: javascript jquery promise jquery-deferred deferred