function task1() {
return new Promise((resolve, reject) => {
// 模拟异步操作,这里使用setTimeout
setTimeout(() => {
// 随机决定任务是否成功
if (Math.random() > 0.5) {
resolve('任务一的结果');
} else {
reject(new Error('任务一出错'));
}
}, 1000);
});
}
function task2(result1) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (Math.random() > 0.5) {
resolve(`任务二基于 ${result1} 的结果`);
} else {
reject(new Error('任务二出错'));
}
}, 1000);
});
}
function task3(result2) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (Math.random() > 0.5) {
resolve(`任务三基于 ${result2} 的结果`);
} else {
reject(new Error('任务三出错'));
}
}, 1000);
});
}
task1()
.then(result1 => task2(result1))
.then(result2 => task3(result2))
.then(finalResult => {
console.log(finalResult);
})
.catch(error => {
console.error(error.message);
});