npm 包 promise-mini 使用教程

阅读时长 7 分钟读完

什么是 promise-mini

promise-mini 是一个轻量级的 Promise 实现库, 它可以使得我们更方便地处理异步请求,避免了回调地狱的情况。Promise 算是 JavaScript 中比较高级的知识点,配合 async/await 可以达到极其优美的代码书写效果。本文将会介绍如何使用 promise-mini 这个 npm 包并展示具体实践。

安装

打开 Terminal 控制台,在工作目录下执行以下语句进行 promise-mini 安装:

基本使用

Promise 具有 Pending(等待中)、Fulfiled(完成)、Rejected(失败)三种状态,promise-mini 在包内定义了一个 Promise 类,所以我们可以通过构造函数创建一个 Promise 对象来执行异步操作,例如:

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

resolve 函数可以传递异步操作成功的数据,而 reject 函数可以传递异步操作失败的错误。

Promise.prototype.then() 方法

在 Promise.prototype 对象上定义了 then、catch 方法,then 方法接收两个参数:一个是在 Promise 对象状态进行改变时调用的函数,另一个是 Promise 对象状态改变失败时调用的函数。

在这里,Promise 库帮助我们处理了状态类型的问题,根据状态的不同进行不同的处理。调用 then 方法之后,它会返回一个新的 Promise 对象,这意味着可以链式调用,例如:

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

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

Promise.prototype.catch() 方法

当 Promise 状态改变失败时调用的方法。是 then(null, rejection) 的别名。`

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

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

Promise.all() 方法

Promise.all() 方法接收一个包含 Promise 对象的可迭代对象(例如数组),并返回一个包含每个 Promsie 值的数组,在所有 Promise 对象都成功执行后才会进行 fulfilled 回调,只要有一个 Promise 对象失败则立即执行 rejected 回调。

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

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

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

Promise.race() 方法

Promise.race() 方法也是接收一个可迭代对象(例如数组),并返回一个 Promise 对象,在可迭代对象中的任意一个 Promise 对象改变状态时进行 fulfilled 或 rejected 回调,具体取决于状态更改的 Promise 对象。

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

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

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

结语

promise-mini 基于原生的 Promise API 精简了许多冗余的方法,这使其在项目中应用更方便。除此之外,promise-mini 整体代码量较小,但在实际使用中对异步操作处理起来异常方便。

示例代码

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

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

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

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

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

证明审核已经完成。

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

纠错
反馈