嘗試創(chuàng)建一個retry返回函數(shù)的函數(shù),該函數(shù)調(diào)用回調(diào)函數(shù)并從傳遞其參數(shù)的回調(diào)函數(shù)返回值并捕獲錯誤。如果捕獲到錯誤,它應(yīng)該返回帶有 catch 的回調(diào)函數(shù)。如果錯誤數(shù)超過計數(shù),則拋出錯誤。這是到目前為止所做的: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}調(diào)用時出現(xiàn)問題: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)
自定義重試功能
莫回?zé)o
2023-03-24 15:42:33