<分区>
我一直在努力弄清楚如何最好地实现重试,例如使用 promises 下载失败。我最好的猜测是用一个新的 promise 解决一个 promise(见下面的伪代码),但我在文档中所能找到的只是 Promise.resolve() 可以用一个 thenable 调用(所以,我相信,用一个 Promise ).这是否也适用于 promise 构造函数中的 resolve 回调?我的方法是否正确或是否有更好的方法来实现重试?
function getdata(url) {
return new Promise(function(resolve, reject) {
ajaxcall({
url: url,
success: function(data) { resolve(data); },
failure: function(err) {
if(retriable(err)) {
resolve(getdata(url));
}
else {
reject(err);
}
}
});
});
}