promise的弊端

Posted mahmud

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了promise的弊端相关的知识,希望对你有一定的参考价值。

promise的弊端

promise彻底解决了callback hell,但也存在以下一些问题

 

  1. 延时问题(涉及到evnet loop)(http://www.ruanyifeng.com/blog/2014/10/event-loop.html))

  2. promise一旦创建,无法取消

  3. pending状态的时候,无法得知进展到哪一步(比如接口超时,可以借助race方法)

  4. promise会吞掉内部抛出的错误,不会反映到外部。如果最后一个then方法里出现错误,无法发现。(可以采取hack形式,在promise构造函数中判断onRejectedCb的数组长度,如果为0,就是没有注册回调,这个时候就抛出错误,某些库实现done方法,它不会返回一个promise对象,且在done()中未经处理的异常不会被promise实例所捕获)

  5. then方法每次调用都会创建一个新的promise对象,一定程度上造成了内存的浪费

 

以上是关于promise的弊端的主要内容,如果未能解决你的问题,请参考以下文章

promise知识

手写promise啥水平

promise.all 怎么用

promise知识盲区整理

promise几种用法

实现promise.all方法