Promises / A+ 规范
2022-03-31 13:38:15 0 举报
AI智能生成
根据promises/A+规范翻译整理出的脑图文件
作者其他创作
大纲/内容
Promises / A+
一个 Promise 的状态必须为以下三种状态之一:等待态(Pending) 、完成态(Fulfilled) 和 拒绝态(Rejected) 。
可以改变为 其他两种状态
等待态:Pending 时
必须有一个不能改变的值 value
完成态:Fulfilled 时
必须有一个不能改变的原因 reason
拒绝态:Rejected 时
Promise 为各个状态时
不能改变为其他状态
如果当 value 或 reason 是引用类型值时,只要求其引用地址相等,属性值是可被更改
注意
外框
状态 states
一个 promise 必须提供一个 then 方法来接收它当前 完成的值(value) 或者 拒绝的原因(reason)
onFulfilled
onRejected
参数
实现时必须注意并且忽略这种情况
不是函数时
必须在 promise 完成 / 拒绝 后调用,并且把 promise 执行后的值(value)/ 失败的原因(reason)作为第一个参数
一定是在 Promise 执行成功或者失败结果出来之后 在调用
且只能被调用一次
必须作为函数调用
注意:
是函数时
参数存在
直接跳过
参数不存在
两个都是可选参数
必须返回一个 promise
则运行下面的 Promise 执行过程
返回一个值 x
则 promise2 必须拒绝(Rejected),并返回异常 e 的原因(reason)
抛出一个异常 e
promise1 成功, promise2 也必须成功,并返回和 promise1 相同的值(value)
peomise1 拒绝,promise2 也必须拒绝,并返回和 promise1 相同的原因(reason)
onFulfilledonRejected
返回值
then 方法使用
then 方法
x 有 then 方法,且看上去像一个 Promise ,执行时使 promise 接收 x 的状态,否则用 x 的值来执行 promise
promise
提示语法错误,并且拒绝 promise
promise 和 x 指向同一对象
promise 需保持为等待态(pending)直至 x 为成功态(Fulfilled)或失败态(Rejected)
x 处于 等待态(pending)
用相同的值(value)完成(Fulfill) promise
x 处于 成功态(Fulfilled)
用相同的原因(reason)拒绝(reject)promise
x 处于 失败态(Rejected)
x 是 promise
把 x.then 赋值给 then
如果调用 rejectPromise 的参数是原因是 r 时,则使用原因 r 来拒绝 promise
如果 resolvePromise 和 rejectPromise 同时被调用,或者被同一参数调用了多次,则优先采用首次调用并忽略剩下的调用
已经调用了 resolvePromise 或 rejectPromise,则忽略。
否则,以 e 为原因 拒绝 promise
如果调用 then 抛出了异常e
是函数
以 x 为参数执行 promise
不是函数
then
有 .then
取 x.then 的值时抛出错误 e ,则以 e 为原因(reason)拒绝(reject) promise
无 .then
x 是 对象或者函数
x 不是对象、函数、promise
x
Promise 执行过程
0 条评论
回复 删除
下一页