【发布时间】:2017-06-01 18:33:46
【问题描述】:
我试图给出一个重试承诺的通用解决方案。以下是我的方式,并出现“未捕获(承诺)”的错误。
我该如何解决这个问题?
function tryAtMost(maxRetries, promise) {
let tries = maxRetries
return new Promise(function(resolve, reject) {
promise.then((result) => {
resolve(result)
})
.catch(err => {
if (tries > 0) {
console.log(`tries with ${tries}`)
tryAtMost(--tries, promise);
} else {
reject(err)
}
})
})
}
tryAtMost(3, promise).then(result => {
console.log(result)
})
.catch(err => {
console.log(err)
})
【问题讨论】:
-
是什么让你认为它会第二次起作用?