标准的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 条评论
登录 后参与评论

相关文章

来自专栏我是攻城师

浅谈ElasticSearch的嵌套存储模型

3496
来自专栏Elson的web征途

Promise 原理探究

你真的了解Promise吗?对我而言,除了知道如何使用then解决回调地狱以外,其他的还真的一知半解。虽然ES6的generator和ES7的async awa...

3445
来自专栏Java技术栈

Java架构师必须知道的 6 大设计原则

原文:www.cnblogs.com/pengdai/p/9151800.html

733
来自专栏葡萄城控件技术团队

异步编程之Javascript Promises 规范介绍

什么是 Promises Promises是一种关于异步编程的规范,目的是将异步处理对象和处理规则进行规范化,为异步编程提供统一接口。 传统的回调函数 说到Ja...

1858
来自专栏码神联盟

性能优化 | Java性能调优准则-攻略1

大家在写代码的时候是不是都只考虑了实现,没有考虑性能呢?如果说你只是做业务系统的增删改查并且业务量不大的话。这是毋庸置疑的。但是如果你在较大吞吐量和较小的资源的...

3247
来自专栏蓝天

使用可重入函数进行更安全的信号处理

在早期的编程中,不可重入性对程序员并不构成威胁;函数不会有并发访问,也没有中断。在很多较老的 C 语言实现中,函数被认为是在单线程进程的环境中运行。

562
来自专栏腾讯IVWEB团队的专栏

讲讲标准的 Promise 长啥样?

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

1470
来自专栏MasiMaro 的技术博文

IRP的同步

以WriteFile为例,一般的同步操作是调用WriteFile完成后,并不会返回,应用程序会在此处暂停,一直等到函数将数据写入文件中并正常返回,而异步操作则是...

1424
来自专栏Albert陈凯

Apache Avro是什么干什么用的(RPC/序列化)

Avro总结(RPC/序列化) Avro(读音类似于[ævrə])是Hadoop的一个子项目, 由Hadoop的创始人Doug Cutting(也是Lucene...

2964
来自专栏java一日一条

Java 理论与实践: 正确使用 Volatile 变量

Java 语言中的 Volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变...

532

扫码关注云+社区