Promise 必知必会

可以把 Promise 看成一个状态机。初始是 pending 状态,可以通过函数 resolve 和 reject ,将状态转变为 resolved 或者 rejected 状态,状态一旦改变就不能再次变化。

then 函数会返回一个 Promise 实例,并且该返回值是一个新的实例而不是之前的实例。

 

 

题目一:Promise 构造函数是同步执行的,promise.then 中的函数是异步执行的。

题目二:promise 有 3 种状态:pending、fulfilled 或 rejected。状态改变只能是 pending->fulfilled 或者 pending->rejected,状态一旦改变则不能再变。

题目三:构造函数中的 resolve 或 reject 只有第一次执行有效,多次调用没有任何作用,呼应代码二结论:promise 状态一旦改变则不能再变。

题目四:promise 每次调用 .then 或者 .catch 都会返回一个新的 promise,从而实现了链式调用。

题目五:promise 的 .then 或者 .catch 可以被调用多次,但这里 Promise 构造函数只执行一次。或者说 promise 内部状态一经改变,并且有了一个值,那么后续每次调用 .then 或者 .catch 都会直接拿到该值。

题目六:.then 或 .catch 返回的值不能是 promise 本身,否则会造成死循环

猜你喜欢

转载自www.cnblogs.com/lemonib/p/10087356.html