AggregateError 函数
聚合错误,用于一次性收集、抛出多个独立错误
适用场景:
- Promise.any () 全部失败时原生抛出 AggregateError
- 批量操作(批量文件读写、批量接口请求)多个任务同时报错,统一汇总抛出
try{
throw new AggregateError([new Error("异常正在进行......."),new TypeError(" 类型异常......"), new ReferenceError(" 引用异常 ......")], "AggregateError 异常处理......");
}catch(e){
console.log(e.name); // AggregateError
console.log(e.message); // AggregateError 异常处理......
console.log(e.errors); // [1] 类型:Error,信息:异常正在进行....... [2] 类型:TypeError,信息:类型异常...... [3] 类型:ReferenceError,信息:引用异常 ......
console.log(e instanceof AggregateError); // true
}
async function batchRequest(){
const taskList = [
Promise.reject(new Error("500")),
Promise.reject(new TypeError(" 参数类型错误")),
Promise.reject(new Error(" 接口超时"))
];
try{
await Promise.any(taskList);
}catch(e){
// Promise.any 全部失败自动抛出 AggregateError
if(e instanceof AggregateError){
console.log(e.message); // All promises were rejected
}
}
}
// 调用batchRequest
batchRequest();
|