// 创建一系列通过then链连接的异步任务
Promise.resolve()
.then(() => {
// 模拟第一个异步任务
return new Promise((resolve, reject) => {
setTimeout(() => {
// 这里模拟成功情况
resolve('第一个任务完成');
}, 1000);
});
})
.then(result => {
console.log(result);
// 模拟第二个异步任务,这里故意抛出错误
throw new Error('第二个任务出错');
})
.then(result => {
console.log(result);
})
.catch(error => {
// 捕获整个then链中的错误
console.error('捕获到错误:', error.message);
});
- 在上述代码中,通过
Promise.resolve()
开始一个Promise链。
- 第一个
then
处理函数返回一个新的Promise模拟第一个异步任务并成功resolve。
- 第二个
then
处理函数故意抛出一个错误模拟任务失败。
- 最后通过
.catch
捕获整个then
链中的错误,并在控制台打印错误信息。这样就优雅地处理了then
链中可能出现的错误。