但是这个功能有什么用呢?如果我们立即解决这个 promise ,我们也可以直接在这个 then()
履行处理程序的下面编写代码。
示例:
myPromise.then(function(someV) {
// ...
return v1;
}).then(function(v) {
// some code
也就是说,我们也可以将//some code
移动到第一个履行处理程序中。
(我认为通常的用例是返回一个 new Promise()
以便我们可以链接 Promise。)
最佳答案
这是一个很好的问题。在其他“monadic 构造”中,有两个函数可以实现此目的(一个用于映射,另一个用于映射 Promise),但在 2013 年的某个时候,决定不在 JavaScript 中执行相同的操作并允许返回值。
这对于使用 Promise 链接操作而不执行异步操作是有意义的。例如:
fetch('./foo').then(x => x.json()).then(JSON.parse);
最后一个 JSON.parse
部分与 Promise 或异步操作无关。
关于javascript - ES6 Promise then() 履行处理程序返回值有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59488779/