标准的Promise

来源:互联网 时间:1970-01-01

序言

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

不同的Promise差异基本表现如下: 构造Promise对象 new Promise().resolve()or new Pomise(function(resolve, reject) {}) 是否有 .done() .fail() .always()等方法 是否有 Promise.all()方法 是否有 isRejected() isResolved() .then()return 结果链式的处理 有哪些标准 Promises/A Promises/A+

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.catch(onRejected) Promise.prototype.then(onFulfilled, onRejected)

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

不标准的使用 构造Promise对象: new Promise().resolve()( 请使用 new Promise(function(resolve, reject) {})) .done() .fail() .always()方法的使用 ( 请使用 .then()) isRejected() isResolved()方法的使用 第三方库的支持 node 0.12+ 支持标准 es6 promise规范 npm promise支持标准es6规范,增加了done()等方法 npm node-promise支持标准es6规范,增加了更多的工具方法,人气不如npm promise jquery promisePromises/A 都没完整准守,存在 .done() .fail() .always()等各种方法, .then()的链式处理弱爆了



相关阅读:
Top