Promise 对象的基本原理及使用方法详解

阅读时长 5 分钟读完

Promise 是一种用于异步编程的技术,它让我们能够更加优雅的处理异步操作。在前端开发中,我们经常会遇到需要进行异步操作的场景,比如发送网络请求、读取本地文件等等。使用 Promise 可以让我们更好的管理这些异步操作,避免回调地狱,使代码更加可读和可维护。

Promise 基本原理

Promise 是一个对象,它的状态有三种:

  • Pending(待定):初始状态,既不成功,也不失败。
  • Fulfilled(已成功):意味着操作成功完成。
  • Rejected(已失败):意味着操作失败。

当 Promise 进入 fulfilled 或 rejected 状态后,它就变为 resolved 状态,解决了 Promise 的使用者需要解决的事情。

Promise 异步编程基于回调函数的方式,将回调嵌套转换为链式调用。回调函数的链式调用通常被称为 Promise 链(Promise Chain)。

Promise 使用方法详解

Promise 的创建

创建 Promise 对象非常简单,只需调用 Promise 构造函数,并传入一个函数作为参数:

  • resolve:当我们想要返回成功状态时,可以调用它。通常它的参数是成功后的结果。
  • reject:当我们想要返回失败状态时,可以调用它。通常它的参数是失败时的结果。

Promise 的使用

Promise 的 then 方法

Promise 对象的 then 方法是 Promise 最重要的方法之一,在 Promise 链中经常用到,它有两个参数,一个是成功回调函数,一个是失败回调函数,如下所示:

  • onFulfilled:Promise 成功时调用的函数。
  • onRejected:Promise 失败时调用的函数。

then 方法返回一个新的 Promise 对象,用于支持Promise 链式调用。如果 callback 抛出异常,不会影响当前的 Promise 状态,总是返回一个 rejected 状态的 Promise 对象。

Promise 的 catch 方法

当 Promise 链中任何一个 Promise 状态变成 rejected 时,就会调用 catch 方法,用于处理链中出现的异常:

onRejected:当 Promise 异常时调用的函数。

Promise 的 finally 方法

finally() 方法用于指定不管 Promise 对象最后状态如何,都会执行的操作,常常被用于清理相关资源,如下所示:

  • callback:不管 Promise 的状态如何,始终会被调用的函数。

Promise 的静态方法

Promise 可以定义一些静态方法来操作 Promise 对象,包括:

  • Promise.all(iterable):一次性执行多个 Promise 对象,每个 Promise 都执行成功后,返回一个数组包含所有 Promise 对象返回的值,按传递顺序排列。
  • Promise.race(iterable):等待 Promise 值解决的时间最短的 Promise 对象或者最先解决的 Promise 对象。
  • Promise.reject(reason):返回一个状态为 rejected 的 Promise 对象。
  • Promise.resolve(value):返回一个状态为 fulfilled 的 Promise 对象,且 Promise的值为 value。

Promise 示例代码

下面是一个示例,展示 Promise 的基本使用方式。

-- -------------------- ---- -------
-- ----
-------- --------------- ------ --------- -
  ------ --- ----------------- ------- -- -
    ------------- -- -
      -- ---------- -
        ----------------
      - ---- -
        ---------------
      -
    -- ------
  ---
-

-- -- ------- -
--------------- --------
  ------------- -- -
    ------------------- -- -----
    ------ --------------- ---------
  --
  ------------- -- -
    ------------------- -- -----
    ------ --------------- -----
  --
  ------------- -- -
    ------------------- -- -
    ----- --- -----------------
  --
  ------------ -- -
    --------------------------- -- -------
  --
  ----------- -- -
    ---------------------
  ---
展开代码

以上就是 Promise 对象的基本原理和使用方法。希望这份指南能够帮助你深入了解 Promise,更好地处理异步操作。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c4dc346e1fc40e36df9102

纠错
反馈

纠错反馈

程序员教程

精选优质教程,助你快速提升技术实力

程序员面试题库

海量优质面试题,助你轻松应对技术面试