参考答案

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

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

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

上面代码的输出是 1