串联多个任务的方法
1. 使用.then()方法
在Promise中,每个.then()
方法都会返回一个新的Promise对象,使得可以在其上继续调用.then()
方法。通过不断地串联多个.then()
方法,可以按照顺序执行多个异步任务。
以下是一个示例,演示了如何串联多个任务:
代码语言:javascript复制function task1() {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('Task 1 completed');
resolve('Result 1');
}, 1000);
});
}
function task2(result) {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('Task 2 completed');
resolve('Result 2');
}, 2000);
});
}
function task3(result) {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('Task 3 completed');
resolve('Result 3');
}, 1500);
});
}
task1()
.then(result1 => task2(result1))
.then(result2 => task3(result2))
.then(result3 => {
console.log('Final result:', result3);
})
.catch(error => {
console.error('Error occurred:', error);
});
在上述示例中,我们定义了三个任务函数task1()
、task2()
和task3()
,它们分别返回Promise对象,并模拟了异步操作。通过在每个.then()
方法中调用下一个任务函数,我们将多个任务串联起来,确保它们按照顺序执行。最后,我们使用一个最终的.then()
方法来处理最后一个任务的结果。
在控制台输出中,我们可以看到每个任务的完成顺序,并最终输出了最后一个任务的结果。