Skip to content

Promise中的值穿透是什么?

Posted on:2021年8月15日 at 15:28

解释:.then 或者 .catch 的参数期望是函数,传入非函数则会发生值穿透。

当then中传入的不是函数,则这个then返回的promise的data,将会保存上一个的promise.data。这就是发生值穿透的原因。而且每一个无效的then所返回的promise的状态都为resolved。

Promise.resolve(1)
  .then(2) // 注意这里
  .then(Promise.resolve(3))
  .then(console.log);

上面代码的输出是 1

原文转自:https://fe.ecool.fun/topic/154d4288-8195-4fd4-87bb-2844cb22a4e5