Promise.resolve 处理 thenable 对象时为什么会发生状态吸收和结果展开
进阶版来源:alibaba初级工程师thenable状态吸收Promise链式调用JavaScript异步编程
草稿
答案解析
Promise.resolve 在处理 thenable 对象时,会发生“状态吸收”和“结果展开”,本质上是因为 Promise 规范要求它兼容所有类 Promise 对象,并且保证 Promise 链的结果不会出现多层嵌套。
thenable 指的是一个对象,只要它有 then 方法,就会被 Promise 当成一个“类 Promise”对象处理,比如:
这里 Promise.resolve(thenable) 并不是简单地把 thenable 当成普通值包一层,而是会读取它的 then 方法,并调用这个 then,把自身的 resolve 和 reject 传进去。thenable 最终调用的是 resolve 还是 reject,外层 Promise 就跟着变成 fulfilled 或
登录后查看完整内容
