0
下面将通过错误处理后回流到成功链:
asyncThatWillFail().then(null, function() {
//handle error
return $.Deferred().resolve();
}).then(nextSuccessCallback);
在我的特殊情况下,虽然,我需要使用$.when.apply($, promises)
方法错误处理程序来执行多个并行异步操作:
asyncThatWillFail().then(null, function() {
var promises = [];
for (var i = 0; i < 3; i++) {
var dfd = $.Deferred();
setTimeout(function() {
dfd.resolve();
}, 1000);
promises.push(dfd.promise());
}
return $.when.apply($,promises);
}).then(nextSuccessCallback);
我曾假设上述将工作,因为我回来的承诺,最终将得到解决。这个jsFiddle虽然表明,在通过我的错误处理程序后,以下成功或错误回调都不会被调用。
由于错误处理程序中的操作是异步的,我不能继续并通过返回发送一些解析值。不知道该从哪里出发。
的承诺的事情会的工作来解决,但你必须只有一个你正在解决的'dfd'变量。 – Bergi