问题是调用者应该同步行为。作为向团队呈现的选项,我如何使调用函数同步运行?
var foo = function() {
var promise = returnsPromise();
promise.done().fail();
// insert magic here
// function returns when either done() or fail() is completed.
}
答案 0 :(得分:1)
JS中没有办法创建等待异步结果的阻塞调用。您必须更改呼叫者才能进行回叫
答案 1 :(得分:1)
如果你真的需要等待延迟解决那个问题,那就像你在没有jQuery的情况下那样做:
while (!promise.isResolved() && !promise.isRejected()) { }
答案 2 :(得分:0)
在延迟对象完成或失败后,您可以使用.always()
执行某些操作。它是"done-fail-always"
,与"success-error-complete"
和"try-catch-finally"
var foo = function(callback) {
var promise = returnsPromise();
promise.done().fail().always(function(){
//do magic
callback();
});
}
然后你打电话给foo:
foo(function(){
//the magic you want done after a done or fail
});