【发布时间】:2020-04-09 23:47:10
【问题描述】:
下面是我想要理解的代码:
示例:1
Promise.resolve('res1')
.then(Promise.resolve('res2'))
.then(Promise.resolve('res3'))
.then(function (result) {
console.log(result);
});
输出是:
res1
但我无法理解为什么它是 res1 而不是 res3。 下面是按预期执行的代码:
示例:2
Promise.resolve('res1')
.then(function (result1) {
console.log(result1);
return Promise.resolve('res2')
})
.then(function (result2) {
console.log(result2);
return Promise.resolve('res3')
})
.then(function (result) {
console.log(result);
});
它的输出是:
res1
res2
res3
因为在每个解析争论被传递到下一个函数之后,所以看起来很好,但是在示例:1 中的后续过程与示例:2 中的不同,例如解析字符串并将其传递给下一个函数。所以,我不会理解它背后的工作流程。提前致谢。
【问题讨论】:
-
.then接受回调,在第一个示例中您没有给它回调,而是给它值。
标签: node.js asynchronous promise