Javascript 应该。然后返回函数体内的最后一个承诺?
因此,问题很简单,Javascript 应该。然后返回函数体内的最后一个承诺?,javascript,Javascript,因此,问题很简单,是否应该返回函数体中的最后一个承诺 例如: Promise.resolve().then(function() { Promise.resolve(1) Promise.resolve(2) }).then(function(val) { return val; }) 当承诺解析时,它是否应该返回最后一个值(2) 我正在处理一些遗留代码,这种构造在一些模块中非常常见,但不起作用 这不应该起作用,因为第一个将返回未定义的承诺 也许你应该看看承诺 是否应。然后返回函
是否应该返回函数体中的最后一个承诺
例如:
Promise.resolve().then(function() {
Promise.resolve(1)
Promise.resolve(2)
}).then(function(val) {
return val;
})
当承诺解析时,它是否应该返回最后一个值(2)
我正在处理一些遗留代码,这种构造在一些模块中非常常见,但不起作用 这不应该起作用,因为第一个将返回未定义的承诺
也许你应该看看承诺
是否应。然后
返回函数体中的最后一个承诺
不可以。函数(包括然后
回调)应该返回其内部的所有承诺。那就是,除非你
当然,一个函数只能返回一个值,因此它只能返回一个承诺。如果你正在做多项工作,要么一件接一件地做,并将你的承诺连成一个链条,要么立即做,然后使用promise.all
做出承诺,等待所有结果
还请注意。不清楚此代码应该做什么。您的代码没有多大意义,但您需要从第一个然后返回一些东西,以便将其解析为第二个然后的val
。因此,如果您编写返回承诺.resolve(2)
则val
将是2
,但Promise.resolve(1)
将是一个悬而未决的承诺,不属于该链的一部分。对于这个任意的例子,你到底想问什么还不是很清楚。@t.niese。所以在这种情况下没有什么比隐式返回更好的了,对吧?是的,没有隐式返回,如果你想等待两个承诺,你会写Promise.all([promiseA,promiseB])。然后(function(results){}
或者使用wait
/async
。