【发布时间】:2019-07-26 23:04:47
【问题描述】:
我很难理解 async/await 是如何工作的。我必须制作一个包含三个函数的程序:func1func2 和 concatenated。
func1 将字符串作为参数并在延迟 5 秒后返回相同的字符串,func2 是一个 async 函数,它也将字符串作为参数并返回相同的字符串。 concatenated 是一个函数,它接受两个字符串 (s1,s2) 作为参数,并使用上述两个函数((func1(s1) and func2(s2)))在 5 秒后返回它们的连接结果。所以如果我们将("hello"," world") 传递给concatenated 它应该返回hello world。我的代码是:
function func1(x) {
return new Promise(resolve => {
setTimeout(() => {
resolve(x);
}, 5000);
});
}
async function func2(x) {
const a = await func1(x);
return a;
}
function concatenated(a,b){
const c = func2(a).then(result =>{console.log(result)});
const d = func2(b).then(result =>{console.log(result)});
return (c+d) ;
}
concatenated("hello"," world")
此代码只给我:hello
world
我该如何纠正这个问题?
【问题讨论】:
-
为什么你的
concatenated函数不用await,而是then?注意c和d都是promise(对于undefined,是回调的结果)。
标签: javascript promise async-await