📅  最后修改于: 2023-12-03 15:13:04.459000             🧑  作者: Mango
then()
方法是Promise对象的方法之一,也是Promise对于异步编程最重要的方法之一。通过 then()
方法我们可以对异步操作的结果进行处理,以及返回新的Promise对象,进行链式操作。
promise.then(onFulfilled[, onRejected]);
onFulfilled
: 成功时执行的回调函数,接收一个参数,即异步操作返回的结果。onRejected
: 失败时执行的回调函数,接收一个参数,即异步操作产生的错误对象。如果不传入 onRejected
参数,则会将错误对象向下传递,并通过下一个 catch()
方法捕获。function delay(time) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(`Success after ${time}ms`);
}, time);
});
}
delay(1000)
.then(result => {
console.log(result); // 输出:Success after 1000ms
return 'Next';
})
.then(result => {
console.log(result); // 输出:Next
})
.catch(error => {
console.error(error);
});
上面的代码展示了如何通过 then()
方法对异步操作的结果进行处理,并返回新的Promise对象,以此进行链式操作。在上面的示例中,我们定义了一个 delay()
函数,用于返回一个经过指定时间后成功的Promise对象。首先通过 delay()
函数创建了一个Promise对象,然后调用 then()
方法,传入一个回调函数,以处理异步操作的结果。在回调函数中,我们打印了异步操作返回的结果,并返回了一个新的值。接着,我们在第二个 then()
方法中调用了这个返回值。最后,我们通过 catch()
方法捕获了任何可能产生的错误。