【发布时间】:2022-01-20 00:08:02
【问题描述】:
例子:
let a = Promise.resolve("123")
.then(val => {
console.log(a);
return 100;
})
.then(val => {
console.log(val);
console.log(a);
})
.finally(() => {
console.log(a);
});
输出:
Promise { <pending> }
100
Promise { <pending> }
Promise { <pending> }
为什么一个已解决的承诺仍处于待处理状态?
【问题讨论】:
-
RTFM。您正在返回一个可行的解决方案。
-
您能澄清一下为什么您认为您不会在这里看到待处理的内容吗?
a的值是整个链中最后一个promise的promise,直到链中的所有.thens都解析后才能解析。你认为a是链中的第一个承诺吗?在整个事情解决后尝试打印console.log(a);例如await a在下一行,然后打印出来。
标签: javascript node.js promise