npm 包 when-master 使用教程

在前端开发中,常常需要处理异步操作的代码,例如进行 ajax 请求、读取文件等等,这时候我们需要用到 Promise 对象来进行处理。而在 Promise 对象中,when.js 库就是一个非常好用的工具。当然现在,when.js 已经停止维护,对于一些新项目来说,我们需要寻找一些替代方案。当然可以选择比较流行的 Promise 实现库,例如 BluebirdQ 等等。但是今天我要介绍的是一个比较小众的 Promise 库 —— when-master,它的优点是轻量易用,API 也比较简单。本篇文章就是一份介绍当下使用 when-master 的指南。

安装

使用 when-master 首先需要在项目中安装这个依赖。使用 npm 命令即可完成:

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

这样我们就可以在项目中使用这个库了。

基础使用

在代码中引入 when-master 库:

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

then 方法是 when-master 最核心的方法,通过它我们可以在 Promise 对象中注册回调函数,在 Promise 对象的状态发生改变的时候被调用。比如:

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

可以看出,$.get('api/user') 返回的是 Promise 对象,我们通过 when 传入这个 Promise 对象,等待其返回结果。当 Promise 对象的状态发生改变之后,我们就可以在 then 中获取到返回的结果。当然你也可以通过 catch 方法捕获 Promise 对象中的错误:

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

Promise.all

when-master 也支持使用 Promise.all 的形式,用于并行处理多个异步请求。比如:

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

Promise.race

另外一个比较实用的方法是 Promise.race,通过它我们可以等待多个异步请求之一先完成。示例:

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

进阶使用

延迟执行

有时我们需要在某些条件达成之后再执行异步请求,这时就可以使用 when.deferred 方法。比如:

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

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

deferred 方法返回的是一个对象,包含有三个方法:resolve、reject 和 promise,其中 promise 就是一个 Promise 对象,我们可以通过调用其方法改变 Promise 对象的状态,让其触发 then 或 catch 方法的执行。

并发限制

在实际项目中,我们可能需要限制并发请求数,避免同时打开过多的请求导致服务器过载。这时可以结合 when-master 提供的 throttle 和 map 方法进行处理。比如限制所有的 ajax 请求最大并发数量为 2:

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

这样当我们在向服务器发送 ajax 请求时,最多只会同时有两个请求在进行中。当某个请求完成后,另外一个会自动开始。

总结

通过以上介绍,相信大家已经可以基本掌握 when-master 的使用了。当然,这里只是对 when-master 的一个简单介绍,详细的 API 及其他高级用法可以参考 官方文档。当然对于一些大型项目而言,可能需要使用更加健壮的 Promise 库,但是对于一些小型的个人项目或者原型开发,when-master 还是一款非常不错的工具。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6006710b8dd3466f61ffe109


猜你喜欢

  • NPM 包 Worona 使用教程

    Worona 是一个基于 React Native 技术的 WordPress 移动应用程序框架,它可以帮助前端开发人员快速地构建客户端应用程序。本文将详细介绍 Worona 使用教程,包括安装、创建...

    4 年前
  • npm 包 worona-polyfills 使用教程

    在前端开发中,时常会遇到一些浏览器兼容性问题,为了解决这些问题,我们需要使用一些 polyfills。worona-polyfills 就是一个用于前端开发的管理和封装 polyfills 的 npm...

    4 年前
  • npm 包 word-finder 使用教程

    在前端开发中,有时需要从一段文本中找出特定的单词或短语,这时就可以使用 npm 包 word-finder。本文将介绍如何安装和使用这个工具,并提供相关示例代码和指导意义。

    4 年前
  • npm 包 word-frequency 使用教程

    简介 npm 包 word-frequency 是一个能够统计一篇文本中每个单词出现频率的 JavaScript 库。该库不依赖于任何第三方库,可以在浏览器和 Node.js 环境下使用。

    4 年前
  • npm 包 word-forward 使用教程

    随着前端技术的不断发展,我们使用的工具也在不断地升级和更新。其中,npm 包是前端工程化中必不可少的一部分。word-forward 是一个 npm 包,它可以帮助我们在文本编辑和分析中,找到单词和它...

    4 年前
  • npm 包 word-list-fa 的使用教程

    在前端开发中,经常需要使用到词汇。为了方便开发,许多开发者会选择使用 npm 包来简化词汇的使用。其中,word-list-fa 是一个适用于中文前端开发的 npm 包,它包含了许多常用的中文词汇,可...

    4 年前
  • npm 包 word-list-json 使用教程

    介绍 word-list-json 是一个简单的 npm 包,提供了一个英文单词列表的 JSON 文件。该包可供前端开发者使用,提供了对于英文单词列表的查询与使用能力。

    4 年前
  • NPM 包 wjs 使用教程

    wjs 是一个强大的 JavaScript 库,它为前端开发者提供了一系列现成的工具和方法,以实现快速的 Web 前端开发。本文将介绍如何在你的项目中使用 wjs 库,并提供一些示例代码和实践指导,以...

    4 年前
  • npm 包 wjsdb 使用教程

    什么是 wjsdb? wjsdb 是一个 npm 包,它为前端开发者提供了一个简单易用的本地存储解决方案。wjsdb 基于 LocalStorage 和 JSON 数据格式实现,可以实现数据的存储、读...

    4 年前
  • npm 包 word-quiz-generator 使用教程

    在前端开发中,我们经常需要生成测试数据来检查我们的应用的正确性。一个常见的需求是生成随机的单词测试题。这时,我们可以使用 npm 包 word-quiz-generator。

    4 年前
  • npm 包 word-replace 使用教程

    在前端开发中,有时候需要对字符串进行替换操作,而 Word-replace 就是一个可用于字符串替换的 npm 包。使用 Word-replace 可以快速、方便地实现字符串替换,提高开发效率。

    4 年前
  • npm 包 word-stream 使用教程

    在前端开发中,有时需要对文本进行处理。word-stream 是一款基于 Node.js 的流式文本处理工具,可以帮助我们快速高效地处理大规模文本数据。本教程将详细介绍如何使用这个工具。

    4 年前
  • npm 包 word-syllable-map 使用教程

    在前端开发中,有时候需要对英文单词进行分音节的操作。而这个功能是不太容易手写的。于是,npm 包 word-syllable-map 就可以帮助我们解决这个问题。 什么是 word-syllable-...

    4 年前
  • npm 包 word-statics 使用教程

    在前端开发中,我们经常会需要对文本进行统计分析,例如统计一篇文章中出现次数最多的单词是哪个,或者统计一段代码中占用空间最多的变量等等。这些工作可以通过手动编写代码来实现,但是随着 JavaScript...

    4 年前
  • NPM 包 word-to-number 使用教程

    在前端开发中,我们经常需要将人类语言转换成数字。例如,“一百五十二”转成数字 152。这是一件非常繁琐且费时的工作。因此,我们需要一个工具来帮助我们完成这个任务。在这篇文章中,我将介绍一个非常有用的 ...

    4 年前
  • npm 包 word-table 使用教程

    简介 word-table 是一个可以将数据渲染成表格,生成 Word 文档的 Node.js 模块。该模块使用简单,灵活易用,适用于快速生成 Word 报表或文档。

    4 年前
  • npm 包 woshify 使用教程

    npm 包 woshify 使用教程 简介 woshify 是一个开源的 JavaScript 库,提供了一系列处理字符串的函数。它可以将传入的字符串转换成“我是XX”的形式,具有一定趣味性和可玩性。

    4 年前
  • npm 包 wotblitz-cli 使用教程

    wotblitz-cli 是一个基于 Node.js 的命令行工具,用于简化在 World of Tanks: Blitz(以下简称 WoT Blitz)中生成随机队伍的流程。

    4 年前
  • npm 包 write-file-promise 使用教程

    在前端开发中,我们经常需要将一些数据写入到文件中,例如日志记录、数据存储等等。在 Node.js 中,我们可以使用 fs 模块来操作文件系统,但是 fs 模块的 API 虽然很强大,但是使用起来还是有...

    4 年前
  • npm 包 write-file-queue 使用教程

    前言 在前端开发中,我们通常需要在浏览器中生成和处理文件,在 Node.js 的后端开发中,也经常需要读写文件。在 Node.js 中,我们可以使用 fs 模块进行文件读写,但是如果要在多个地方同时调...

    4 年前

相关推荐

    暂无文章