promise对象的含义

promise是异步编程的一种解决方法,比回调函数和事件更强大更合理。

所谓promise简单说就是一个容器,里面保存着未来才会结束的事件(通常是一个异步操作的结果),从语法上说promise是一个对象,从它可以获取异步操作的消息。

promise对象有两个特点:

1.对象的状态不受外界影响。promise对象代表一个异步操作,有三种状态:pending(进行中),resolved(已完成)和reject(已失败)。只有异步操作的结果可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是promise这个名字的由来。表示其他手段无法改变。

2.一旦状态改变就不会在变,任何时候都可以得到这个结果。promise对象的状态改变只有两种可能:从pending变为resolved,从pending变为rejected。只要这两种状况发生,状态就会凝固了,不会在变了,会一直保持这个结果。就算改变已经发生了,即使调用回调函数也还是这个结果。这与事件(Event)完全不同,事件的特点是如果你错过了,再去监听它,是得不到结果的。

promise优点

有了promise对象,就可以把异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,promise对象提供了统一的接口,使得控制异步操作更简单。

缺点

1.无法取消promise,一旦创建就立即执行,无法中途取消

2.如果不设置回调函数,promise内部抛出错误,不会反映到外部

3.当处于pending状态时,无法得知目前进展到那个阶段(刚刚开始还是即将完成)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Promise 对象 Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函...
    neromous阅读 8,730评论 1 56
  • Promise对象是一种解决异步问题的方法,还有的解决方案是asyns 和 await (es7) 这么是目前的终...
    站在大神的肩膀上看世界阅读 1,280评论 0 6
  • 目录:Promise 的含义基本用法Promise.prototype.then()Promise.prototy...
    BluesCurry阅读 1,503评论 0 8
  • 00、前言Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区...
    夜幕小草阅读 2,142评论 0 12
  • 时值大兴世界月季大会召开,赋诗记之。 莫道花无百日红, 五彩缤纷各不同。 二十四番花信至, 从此日日笑东风。
    老爸的杂拌儿糖阅读 229评论 0 8