梗概:
Promise中有一个then()方法, 向其传入回调函数可以处理成功的Promise 传入then方法的回调函数会被默认视为一个异步函数
返回值:
then方法也返回一个Promise
- 如果then方法中的某个回调函数中有返回值(通常是一个Promise对象)
- 则该then方法就返回这个Promise对象
- 如果then方法的返回值不是Promise对象, 或没有返回值,
- 则默认返回一个马上转变为成功状态的Promise对象
示例
以下是使用 then 方法的一些示例,帮助理解其工作原理:
链式调用
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve(1), 1000);
});
promise
.then((value) => {
console.log(value); // 输出: 1
return value * 2;
})
.then((value) => {
console.log(value); // 输出: 2
return value * 3;
})
.then((value) => {
console.log(value); // 输出: 6
return value * 4;
});在这个例子中,通过 return 将每个计算结果传递到下一个 then 的回调函数中,从而实现链式调用。
返回 Promise 对象
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve(5),1000);
});
promise.then(
(value)=>{
return new Promise((resolve,reject)=>{
setTimeout(()=>resolve(value*10),1000)
});
}
).then(
(value)=>{
console.log(value);//输出:50
}
)