尝试创建一个retry返回函数的函数,该函数调用回调函数并从传递其参数的回调函数返回值并捕获错误。如果捕获到错误,它应该返回带有 catch 的回调函数。如果错误数超过计数,则抛出错误。
这是到目前为止所做的:
const retry = (count, callback) => {
let attempts = 1;
const _retry = async (...args) => callback(...args)
.catch(err => {
if (attempts > count) throw err
attempts++
return _retry(...args)
});
return _retry
}
调用时出现问题:
var r = Math.random().toString(36).slice(2)
var arg = (n) => async (...v) =>
--n < 0 ? v : Promise.reject(Error(`>>> x:${v}`))
await retry(3, arg(2))(r)
慕后森
相关分类