Promise 常用 API 详解及实例分析

阅读时长 6 分钟读完

前言

Promise 是 JavaScript 中用于异步编程的最常用的工具之一。它可以帮助我们更方便地处理异步操作,避免回调地狱等问题。本文将详细介绍 Promise 的常用 API,以及如何使用它们实现各种异步操作。

Promise 基本概念

Promise 是一种表示异步操作的对象,它可以在异步操作完成后返回一个结果或者一个错误。一个 Promise 对象有三种状态:

  • pending:初始状态,既不是成功也不是失败状态。
  • fulfilled:意味着操作成功完成。
  • rejected:意味着操作失败。

Promise 对象的状态只能从 pending 转变为 fulfilled 或 rejected,一旦状态发生改变,就不能再次改变。

Promise 常用 API

Promise.resolve()

Promise.resolve() 方法返回一个以给定值解析后的 Promise 对象。如果这个值是一个 Promise,则返回它;如果这个值是 thenable(即带有 then 方法),返回的 Promise 会“跟随”这个 thenable 的对象,采用它的最终状态;否则返回的 Promise 将以此值完成。

Promise.reject()

Promise.reject() 方法返回一个带有拒绝原因的 Promise 对象。

Promise.all()

Promise.all() 方法接收一个 Promise 数组作为参数,当这个数组中的所有 Promise 都完成时,返回一个 Promise,其结果是一个数组,包含每个 Promise 的结果。

Promise.race()

Promise.race() 方法接收一个 Promise 数组作为参数,当这个数组中的任何一个 Promise 完成时,返回一个 Promise,其结果是完成的 Promise 的结果。

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

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

Promise.catch()

Promise.catch() 方法用于处理 Promise 中的错误。它返回一个新的 Promise 对象,其结果是通过调用提供的回调函数处理错误后返回的值。

实例分析

异步请求

在前端开发中,我们经常需要通过异步请求获取数据。Promise 可以帮助我们更方便地处理这种情况。

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

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

延时操作

有时候我们需要在一定时间后执行某些操作。Promise 可以帮助我们实现这个功能。

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

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

多个异步请求

当我们需要同时进行多个异步请求时,可以使用 Promise.all() 方法。

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

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

结论

Promise 是 JavaScript 中用于异步编程的重要工具,它可以帮助我们更方便地处理异步操作。本文介绍了 Promise 的常用 API,以及如何使用它们实现各种异步操作。希望本文对您有所帮助。

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

纠错
反馈