异步处理的通用模型

2020-08-09  本文已影响0人  bestCindy

ES 官方参考了大量的异步场景,总结出一套异步通用模型,该模型,可以覆盖几乎所有的异步场景,甚至同步场景。

值得注意的是,为了兼容旧系统,ES6 并不打算抛弃掉过去的做法,只是基于该模型推出一个全新的 API,使用该 API,会让异步处理更加简洁优雅

理解该 API 最重要的,是理解它的异步模型

1、ES6 将某一件可能发生异步操作的事情,分为两个阶段:unsettledsettled

事情总是从 未决阶段 逐步发展到 已决阶段 的。并且,未决阶段拥有何时通向已决阶段的能力

2、ES6 将事情划分为三种状态:pending、resolved、rejected

既然未决阶段有权利决定事情的走向,因此,未决阶段可以决定事情最终的状态!

我们将 把事情变为 resolve 的状态的过程叫做:resolved,推向该状态时,可能会传递一些数据

我们将 把事情变为 reject 状态的过程叫做:rejected,推向该状态时,同样可能会传递一些数据,通常为错误信息

始终记住,无论阶段,还是状态,是不可逆的!


当事情达到已决阶段后,通常需要进行后续处理,不同的已决状态,决定了不同的后续处理

后续处理可能有多个,因此会形成作业队列,这些后续处理会按照顺序,当状态到达后依次执行


Promise
上一篇 下一篇

猜你喜欢

热点阅读