需要处理的 Promise 对象
Optional
希望附加到错误对象上的额外属性,用于错误分类或上下文信息
返回一个 Promise,解析为 [error, result] 元组
异步任务处理工具,将 Promise 的结果转换为 [error, result] 元组形式,避免使用 try-catch
当 promise 参数不是 Promise 对象时抛出错误
// 基本用法const [error, result] = await promiseTask(fetch('/api/user'));if (error) { console.error('请求失败:', error.message); return;}console.log('用户数据:', result); Copy
// 基本用法const [error, result] = await promiseTask(fetch('/api/user'));if (error) { console.error('请求失败:', error.message); return;}console.log('用户数据:', result);
// 带错误扩展信息const [error, data] = await promiseTask( fetchUserData(userId), { context: 'user-profile', userId });if (error) { console.error('获取用户资料失败:', { message: error.message, context: error.context, userId: error.userId }); return;} Copy
// 带错误扩展信息const [error, data] = await promiseTask( fetchUserData(userId), { context: 'user-profile', userId });if (error) { console.error('获取用户资料失败:', { message: error.message, context: error.context, userId: error.userId }); return;}
// 在循环中使用,避免中断const results = [];for (const url of urls) { const [error, response] = await promiseTask(fetch(url)); if (error) { console.warn(`跳过失败的请求 ${url}:`, error.message); continue; } results.push(response);} Copy
// 在循环中使用,避免中断const results = [];for (const url of urls) { const [error, response] = await promiseTask(fetch(url)); if (error) { console.warn(`跳过失败的请求 ${url}:`, error.message); continue; } results.push(response);}
需要处理的 Promise 对象