【发布时间】:2019-02-05 23:55:49
【问题描述】:
这个问题有两部分,都与 Javascript 承诺如何使用 return 语句传递函数有关。
1)
我有简单的 Javascript 函数,其中包括多个返回语句。内部函数向箭头函数返回一个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”调用发生在函数内部。 然后调用“用完”承诺吗?在这种情况下,返回箭头函数,然后返回父函数?
感谢您的帮助。
【问题讨论】:
-
1)
returnMe("Hello!").then会报错,因为returnMe返回的函数是一个函数,没有.then方法... 2) 调用returnMe会导致一个函数......这个函数需要被执行 -
我可以写下面的代码吗?我有点好奇你为什么不直接运行它自己看看?
-
公平的问题——我想了解它为何如此行事背后的逻辑。显然我运行了这些 sn-ps,但并不真正理解它们为什么不起作用。
标签: javascript function asynchronous promise es6-promise