NPM酷库:promise 异步任务状态管理

NPM酷库,每天两分钟,了解一个流行NPM库。

JavaScript的优势就在于其基于异步事件模型,从而Node.js能够拥有非常强大的性能表现。但是,JavaScript的callback方式做异步处理,多层级情况下对人而言简直是噩梦,故而称之为回调地域:

上述代码中,仅仅包含两层回调,在实际开发中,经常会遇到处理涉及七八层回调的情况,可以想象多么恐怖,针对这种情况,产生了一系列的异步任务管理库,Promise就是最常用的一个。

Promise

Promise 是一个划时代的库,因为Promise产生后,后续的ES7标准的async/await就是基于Promise的,而async/await机制让人能够以同步样式的代码处理异步任务,彻底解决了回调问题。

而Promise的机制其实很简单,它将异步任务抽象为三种状态Pending(进行中)、Fulfilled(完成)、Rejected(失败)。

针对上文中的代码,用Promise方式可以写成:

用Promise改写后,原来的多层回调会被“拉扁”成1~2层,形成一个链状调用。当然前提是上述的和得支持Promise方式调用,如果不支持,我们可以将一个callback方式的函数转换成Promise样式:

上述代码中函数返回了一个Promise对象,遗憾的是某些古老的浏览器没有内置Promise对象,那么我们可以使用promise库:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise

https://github.com/then/promise

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180127G0BJRX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券