ES12 之 ES6 Promise 必知必会

前言

在 Web 前端开发中,异步编程是非常常见的。ES6 Promise 是一种可靠地解决 JavaScript 异步编程的方法,并经过了标准化的 Promise A+ 规范。这篇文章将会详细介绍 ES6 Promise,并为大家提供足够的样例代码来帮助大家更好地理解。

Promise 的基本概念

Promise 是一种代表异步操作最终完成或失败的对象。通俗地说,Promise 对象表示一个异步操作的最终完成,或者最终失败。可以使用 Promise.resolve(value) 或者 Promise.reject(reason) 来得到一个完成或失败的 Promise 对象。

Promise 有 3 个状态:

  • Pending(进行中)
  • Fulfilled(已成功)
  • Rejected(已失败)

当一个 Promise 从 Pending 状态转变成 FulfilledRejected 时,就称为 Promise 被 settled

Promise 的基本用法

Promise 链式调用

Promise 链式调用可以让异步操作按顺序依次执行。

在 Promise 链式调用中,每个 .then() 方法返回的都是 Promise 对象,所以可以使用 .then() 方法实现异步操作的串联或并联。

Promise 的常见操作

Promise.all()

Promise.all() 可以将多个 Promise 对象组合成一个新的 Promise 对象,这个新的 Promise 对象将在所有的 Promise 对象都已经成功被 settled 时,自动转化为 Fulfilled 状态。

如果其中有任何一个 Promise 被 Reject,则整个 Promise.all() 被 Reject。

Promise.race()

Promise.race() 可以将多个 Promise 对象组合成一个新的 Promise 对象,这个新的 Promise 对象将在其中任意一个 Promise 对象被 settled 时,自动转化为 Fulfilled 或 Rejected 状态。

Promise.finally()

Promise.finally() 方法可以在 Promise 对象被 resolvedrejected 后,执行指定的回调函数。与 .then().catch() 不同,finally() 没有参数,只是在 Promise 对象对象完成后,执行回调函数。

总结

通过本文对 ES6 Promise 的详细介绍,我们学习到了 Promise 的基本概念、基本用法以及常见操作。掌握 Promise 非常重要,它可以使得异步编程更为流畅美妙。希望本文可以为大家学习 ES6 Promise 提供帮助并带来指导意义。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/653458327d4982a6eb899648


纠错
反馈