前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >标准的Promise

标准的Promise

作者头像
IMWeb前端团队
发布2017-12-29 18:11:39
7100
发布2017-12-29 18:11:39
举报
文章被收录于专栏:IMWeb前端团队

序言

不同项目下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()的链式处理弱爆了
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 序言
  • 不同的Promise差异基本表现如下:
  • 有哪些标准
  • 标准的Promise
  • 不标准的使用
  • 第三方库的支持
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档