这个问题分为两个部分,都与如何使用return语句在函数周围传递Javascript承诺有关。
1)
我有简单的Javascript函数,其中包括多个return语句。内部函数向箭头函数返回一个promise,箭头函数也被返回,如下所示:
const returnMe(data){
return () => {
return Promise.resolve(data);
};
};
我可以编写以下代码吗?
returnMe("Hello!").then((msg) => { console.log(msg) }); /// --> output "Hello!" ??
换句话说,如果嵌套函数收到已解决/已拒绝的诺言,并且该函数返回给它的父函数,那么父函数会收到已解决/已拒绝的诺言吗?
2)
另一个相关但略有不同的示例。...
const returnMe(data){
return () => {
return Promise.resolve(data).then(() => { console.log("Ha!") });
};
};
在这种情况下,“ then”调用发生在函数内部。 然后调用“用完”诺言吗?在这种情况下,返回箭头功能然后返回父功能的内容是什么?
谢谢您的帮助。
答案 0 :(得分:1)
1)由于struct ll *inst = malloc(sizeof(struct ll) + (sizeof(void *) * 10));
返回一个函数,因此您必须调用该函数。这将返回一个承诺,然后您可以将其与returnMe()
.then()
2)内部function returnMe(data){
return () => {
return Promise.resolve(data);
};
};
returnMe("Hello!")().then(msg => console.log(msg));
使用了承诺解析的数据,但是返回了一个新的承诺。因此,您可以为此致电.then()
。
与示例1一样,您需要调用.then()
返回的函数以执行内部函数。
returnMe()