1.如何改变pending的壮体
- 抛出异常。pending变为rejected // throw new Error('fail') 内部抛出异常也这样 reason为抛出的error
- resolve() pending变为resolved
- reject()pending变为rejected
2.一个promise指定多个成功/失败的回调 都会执行吗
全部都会执行
3.改变promise状态和指定回调函数的先后
一般异步情况
先指定的回调函数(内部保存回调函数),后改变状态(指定数据),然后执行回调函数
也可以先改变状态再指定回调
4.promise.then()返回的promise结果状态由什么决定
简单表达: 由.then指定的回调函数执行结果决定
详细表达:
- 抛出异常,新promise变为rejected,reason为抛出异常
- 返回的是非promise值。新promise为resolved value为值
- 返回的是新promise。新promise的结果就是结果