gpt4 book ai didi

javascript - 嵌套的 Javascript 如何返回 "pass up" promise ?

转载 作者:行者123 更新时间:2023-12-03 01:13:52 24 4
gpt4 key购买 nike

这个问题有两个部分,都与 Javascript Promise 如何使用 return 语句在函数中传递有关。

1)

我有简单的 Javascript 函数,其中包含多个返回语句。内部函数返回一个对箭头函数的 promise ,箭头函数也被返回,如下所示:

const returnMe(data){
return () => {
return Promise.resolve(data);
};
};

我可以写下面的代码吗?

returnMe("Hello!").then((msg) => { console.log(msg) }); /// --> output "Hello!" ??

换句话说,如果嵌套函数收到已解决/拒绝的 Promise,并且该函数返回到其父函数,则父函数是否收到已解决/拒绝的 Promise?

2)

另一个相关但有些不同的例子......

 const returnMe(data){
return () => {
return Promise.resolve(data).then(() => { console.log("Ha!") });
};
};

在这种情况下,“then”调用发生在函数内部。 then 会调用“用完”promise 吗?在这种情况下,返回给箭头函数,然后返回给父函数的是什么呢?

感谢您的帮助。

最佳答案

1) 由于returnMe() 返回一个函数,因此您必须调用该函数。这将返回一个 promise ,然后您可以将其与 .then()

一起使用

function returnMe(data){
return () => {
return Promise.resolve(data);
};
};

returnMe("Hello!")().then(msg => console.log(msg));

2) 内部 .then() 使用 Promise 解析的数据,但它返回一个新的 Promise。所以你可以对此调用 .then()

与示例 1 一样,您需要调用 returnMe() 返回的函数才能执行内部函数。

function returnMe(data){
return () => {
return Promise.resolve(data).then(() => { console.log("Ha!") });
};
};

returnMe("Hello!")().then(() => console.log("Done!"));

关于javascript - 嵌套的 Javascript 如何返回 "pass up" promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52107165/

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