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对象的含义)