返回

JavaScript Promise:精通静态和实例方法,解锁异步编程新技能

前端

Promise的静态方法

Promise提供了几个静态方法,这些方法可以帮助我们创建和管理Promise。

  • Promise.resolve(value) :创建一个新的Promise对象,并立即将其置于已完成状态,并将给定的值作为结果。
  • Promise.reject(reason) :创建一个新的Promise对象,并立即将其置于已拒绝状态,并将给定的原因作为结果。
  • Promise.all(promises) :创建一个新的Promise对象,该Promise对象将等待给定的所有Promise对象完成,然后将所有Promise对象的结果作为数组返回。
  • Promise.race(promises) :创建一个新的Promise对象,该Promise对象将等待给定的所有Promise对象中的第一个完成,然后将第一个完成的Promise对象的结果作为结果。

Promise的实例方法

Promise对象提供了几个实例方法,这些方法可以帮助我们处理Promise的状态和结果。

  • then(onFulfilled, onRejected) :添加一个回调函数,该回调函数将在Promise对象完成时被调用。如果Promise对象以已完成状态完成,则将调用第一个回调函数onFulfilled,并将Promise对象的结果作为参数传递给该回调函数。如果Promise对象以已拒绝状态完成,则将调用第二个回调函数onRejected,并将Promise对象的原因作为参数传递给该回调函数。
  • catch(onRejected) :添加一个回调函数,该回调函数将在Promise对象被拒绝时被调用。该回调函数将收到Promise对象的原因作为参数。
  • finally(onFinally) :添加一个回调函数,该回调函数无论Promise对象是已完成还是已拒绝都会被调用。该回调函数不会收到任何参数。

async和await

async和await是ES8中引入的两个新,它们可以让我们更方便地编写异步代码。async可以用来标记一个函数为异步函数,而await可以用来等待一个Promise对象完成。

async function main() {
  const result = await Promise.resolve(10);
  console.log(result); // 10
}

main();

在上面的例子中,main函数被标记为异步函数,函数体中的await关键字表示等待Promise.resolve(10)完成,然后将结果作为变量result。

总结

Promise是JavaScript中非常重要的异步编程工具,它可以让我们更方便地处理异步操作。Promise的静态和实例方法提供了多种方式来创建和管理Promise对象。async和await是ES8中引入的两个新关键字,它们可以让我们更方便地编写异步代码。