/** * 异步任务重试器 * @param {Function} task 异步任务 * @param {Number} maxRetries 最大重试次数 * @param {Number} delay 重试间隔(秒) * @returns */ async function executeWithRetry(task, maxRetries, delay) { let attempts = 0; while (attempts < maxRetries) { try { // 尝试执行异步任务 const result = await task(); // console.log("任务成功"); return result; // 成功时返回结果 } catch (error) { attempts++; console.error(`尝试 ${attempts} 失败:`, error.message); if (attempts >= maxRetries) { console.error("已达最大重试次数,任务失败。"); throw error; // 达到最大重试次数时抛出错误 } console.log(`等待 ${delay} 秒后重试...`); // 等待指定时间后再重试 await new Promise((resolve) => setTimeout(resolve, delay * 1000)); } } } module.exports = executeWithRetry