npm 包 bluebird_ext 使用教程

阅读时长 6 分钟读完

什么是 bluebird_ext

bluebird_ext 是一个使用 Bluebird 库的扩展,在 Bluebird 的基础上增加了一些常用的异步处理函数封装,使得我们在使用 Bluebird 进行异步操作时更加方便。这个库可以在 Node.js 和浏览器环境下使用。

安装 bluebird_ext

使用 npm 安装:

使用 bluebird_ext

引入

在 Node.js 中引入:

在浏览器中引入:

API

ext.delay(ms, value)

延时一定时间后返回指定的值,类似于 setTimeout,不过是用 Promise 实现的。

ext.timeout(promise, ms, timeoutValue)

如果一个 Promise 在一定时间内没有返回,则返回一个指定的值,类似于 Promise.race,不过增加了超时判断。

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

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

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

ext.forEach(items, action)

并发处理一个数组,类似于 Promise.all,但是这个函数能够保证每个 Promise 都会按照数组顺序执行,即使前面的 Promise 已经返回了。这个函数返回的 Promise 的值是原数组中所有 Promise 返回的值(按照原数组顺序排列),如果其中任意一个 Promise 返回了错误,则整个 Promise 就会被拒绝,并抛出错误。

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

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

ext.map(items, action)

并发处理一个数组,并将每个 Promise 返回的值映射成一个新数组,类似于 Promise.all,但是这个函数能够保证每个 Promise 都会按照数组顺序执行,即使前面的 Promise 已经返回了。这个函数返回的 Promise 的值是一个新数组,新数组的每个元素对应原数组中每个 Promise 的返回值,如果其中任意一个 Promise 返回了错误,则整个 Promise 就会被拒绝,并抛出错误。

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

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

ext.reduce(items, action, initialValue)

对一个数组进行异步操作,类似于 Array.prototype.reduce,但是这个函数是异步的。这个函数返回的 Promise 的值是最后一个 Promise 返回的值,如果其中任意一个 Promise 返回了错误,则整个 Promise 就会被拒绝,并抛出错误。

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

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

总结

bluebird_ext 提供了一些在使用 Bluebird 时比较常用的异步处理函数封装,在异步操作中提供了更加方便的使用方式。通过本文的介绍,希望读者能够更加深入地理解 Promise 和 Bluebird,并掌握 bluebird_ext 的使用方法。

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

纠错
反馈