promise链式调用

Promise链式调用是一种处理异步操作的方法,它允许你将多个异步操作按顺序执行,并在每个操作完成后处理返回的结果。以下是Promise链式调用的基本概念和用法:

  1. 基本概念
  • then方法用于指定当Promise状态改变时应该执行的回调函数。

  • then方法返回一个新的Promise对象。

  • then方法可以接收两个参数:成功回调函数和失败回调函数。

  • 如果then方法返回一个普通值(非Promise对象),新的Promise对象会立即进入成功状态,并且其值为这个普通值。

  • 如果then方法返回一个Promise对象,新的Promise对象会等待这个返回的Promise对象完成(即成功或失败),然后根据返回的结果进入相应的状态。

  1. 链式调用示例
let p = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve(10);
  }, 1000);
});

p.then(result => {
  console.log(result); // 输出:10
  return result + 10// 返回普通值
}).then(result => {
  console.log(result); // 输出:20
}).catch(error => {
  console.log(error); // 如果有错误,这里会捕获
});
  1. 错误处理
  • catch方法用于处理Promise链中的错误。

  • 它等同于在then方法中只传递第二个参数(失败回调函数)。

  1. 中止Promise链
  • 如果在某个then方法中需要中止Promise链,可以调用reject函数。

  • 如果then方法返回一个非Promise值,且该值不是undefined,新的Promise对象会立即进入失败状态。

  1. 返回Promise
  • 为了使then方法能够返回一个新的Promise对象,你需要在回调函数中返回一个Promise对象或者一个普通值。

  • 如果then方法返回一个Promise对象,那么链式调用会继续等待这个Promise对象完成。

通过以上概念和示例,你可以更好地理解和使用Promise链式调用来处理异步操作。

Top