JS

梗概:

Promise中有一个then()方法, 向其传入回调函数可以处理成功的Promise 传入then方法的回调函数会被默认视为一个异步函数

返回值:

then方法也返回一个Promise

  1. 如果then方法中的某个回调函数中有返回值(通常是一个Promise对象)
    1. 则该then方法就返回这个Promise对象
  2. 如果then方法的返回值不是Promise对象, 或没有返回值,
    1. 则默认返回一个马上转变为成功状态的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 
   }
)