gpt4 book ai didi

javascript - Bluebird 两种返回类型的差异

转载 作者:行者123 更新时间:2023-12-03 04:42:57 24 4
gpt4 key购买 nike

假设我有以下 node.js 代码

function foo() {
return promiseOne().then(function(result) {
return promiseTwo();
});
}

这两个“返回”有什么区别?我知道第二个“返回”的目的是使 PromiseTwo() 可用。我必须有第一次“返回”吗?我想这归结为第二次“回归”的范围?因为如果我在某个地方调用 foo() 并且我没有第一次“返回”,那么我将不会得到任何返回?

最佳答案

What's the difference between these two "return"s?

第一个返回一个由 .then() 返回的 promise 对 promiseOne() 的结果调用的方法调用函数调用。第二个返回 promiseTwo() 返回的 promise 函数调用。

Do I have to have the 1st "return"?

如果您不希望从 foo() 返回 promise ,则否功能,如果你这样做的话是的。

Because if I call foo() somewhere and I don't have 1st 'return', then I will not get anything back?

对于任何函数都是如此。如果该函数没有返回任何内容,那么您将不会得到任何结果。无论函数返回什么—— promise 或其他任何东西,它都是真的。

如果foo()函数不返回值,那么您将无法执行以下任何操作:

let promise = foo();
foo().then(...);
foo().catch(...);
let value = await foo();
try { await foo(); } catch (err) { ... }

最后一个只会捕获 foo() 抛出的异常。函数本身,如果您不从 foo() 返回 promise ,它就不会捕获 promise 拒绝。功能。

关于javascript - Bluebird 两种返回类型的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43006572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com