标准的Promise

序言

不同项目下lib里的promise/deferred往往是差异化最多的,用起来和自己的习惯相比经常是缺胳膊少腿多屁眼有卵用,因此聊聊标准的Promise的啥样的

不同的Promise差异基本表现如下:

  • 构造Promise对象 new Promise().resolve() ornew Pomise(function(resolve, reject) {})
  • 是否有 .done() .fail() .always() 等方法
  • 是否有Promise.all()方法
  • 是否有isRejected() isResolved()
  • .then() return 结果链式的处理

有哪些标准

Promises/A+兼容扩展Promises/A而来,es6里的Promise准守Promises/A+规范,也是当今的标准规范。

标准的Promise

构造 :

  • new Promise(function(resolve, reject) {})

静态方法 :

  • Promise.all(iterable)
  • Promise.race(iterable)
  • Promise.reject(reason)
  • Promise.resolve(value)

对象方法:

  • Promise.prototype.then(onFulfilled, onRejected)
  • Promise.prototype.catch(onRejected)

then方法参数onFulfilled可以直接返回数据/Promise实现链式,onRejected可以返回Promise反转结果链式

不标准的使用

  • 构造Promise对象: new Promise().resolve() ( 请使用new Promise(function(resolve, reject) {}) )
  • .done() .fail() .always() 方法的使用 ( 请使用.then() .catch())
  • isRejected() isResolved() 方法的使用

第三方库的支持

  • node 0.12+ 支持标准es6 promise规范
  • npm promise 支持标准es6规范,增加了done()等方法
  • npm node-promise 支持标准es6规范,增加了更多的工具方法,人气不如npm promise
  • jquery promise Promises/A 都没完整准守,存在.done() .fail() .always()等各种方法,.then()的链式处理弱爆了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏从流域到海域

《笨办法学Python》 第6课手记

《笨办法学Python》 第6课手记 第6课讲字符串和文本,作者给出的代码如下: x = "There are %d types of people." % 1...

20350
来自专栏老九学堂

最新Java高薪面试题+答案+解析!

今天老九君给大家分享一些Java面试需要的题目哟~ 01 anonymousinnerclass(匿名内部类)是否可以extends(继承)其它类,是否可以im...

46270
来自专栏Python爬虫与数据挖掘

Python正则表达式初识(六)

续分享Python正则表达式基础,今天给大家分享的正则表达式特殊符号是“[]”。中括号十分实用,其有特殊含义,其代表的意思是中括号中的字符只要满足其中任意一个就...

11230
来自专栏个人随笔

房上的猫:类的无参方法

一.类的无参方法  1.概述:   (1)类是由一组具有相同属性和共同行为的实体抽象而来的   (2)对象执行的操作是通过编写类的方法实现的   (3)类的每一...

385130
来自专栏用户2442861的专栏

JS面向对象的程序设计

http://www.cnblogs.com/gaojun/p/3386552.html

9810
来自专栏极客猴

彻底理解Iterable、Iterator、generator

我们一般称 Iterable 为可迭代对象。Python 中任意的对象,只要它定义了可以返回一个迭代器的 __iter__ 方法,或者定义了可以支持下标索引的 ...

9830
来自专栏日常学python

一文解开可迭代对象和迭代器的神秘面纱

可迭代对象和迭代器是两种不同的数据类型,它们都在我们的编程中时常可以遇到。当然他们之间也有很大的关联,接下来就让我们把它们搞定。

11840
来自专栏猿人谷

C++重要知识点小结---3

C++重要知识点小结---1:http://www.cnblogs.com/heyonggang/p/3246631.html C++重要知识点小结---2:h...

17660
来自专栏IT派

Java面试中常被问到的几大技术难题

大家在平常面试java的过程中都会遇到哪些难题呢?还有一些即将去面试java的童鞋们,你们想知道技术面试中会涉及到哪些点吗?达妹为你整理Java面试中会被问到的...

12400
来自专栏从流域到海域

JavaScript闭包详解

JavaScript闭包详解 闭包就是由函数创造的一个词法作用域,里面创建的变量被引用后,可以在这个词法环境之外自由使用(维基百科)。 闭包,官方对闭包...

21880

扫码关注云+社区

领取腾讯云代金券