Javascript 结束:主题外,缺少返回

Javascript 结束:主题外,缺少返回,javascript,node.js,promise,async-await,Javascript,Node.js,Promise,Async Await,我有一个问题: 当我使用: async function createElement(req,res){ const time1 = new Date().getTime(); console.log("turn on time 1 ",time1) await new Promise((resolve) => setTimeout(resolve,1000)); await new Promise((resolve) => setTimeout(resolv

我有一个问题:

当我使用:

async function createElement(req,res){
   const time1 = new Date().getTime();
   console.log("turn on time 1 ",time1)
   await new Promise((resolve) => setTimeout(resolve,1000));
   await new Promise((resolve) => setTimeout(resolve,1000));
   const time2 = new Date().getTime();
   console.log("turn on time 2 ",time2)
   console.log('result : ', time2 - time1);
}
结果是:

turn on time 1 1531957505408
turn on time 2 1531957507413
result : 2005
很好,但当我尝试使用承诺时,一切都在等待

async function createElement(req,res){
let fn1 = () => {
    new Promise((resolve) => {

        setTimeout(() => {
            console.log("message from fn1")
            resolve()
       },1000)
    });
}
let fn2 = () => {
    new Promise((resolve) => {
        setTimeout(() => {
             console.log("message from fn2")
             resolve()
        },1000)

    });
}
const time1 = new Date().getTime();
console.log("turn on time 1 ",time1)
let responses = await Promise.all([fn1(),fn2()])
console.log("waiting for responses")
const time2 = new Date().getTime();
console.log("turn on time 2 ",time2)
console.log('result : ', time2 - time1);
}
结果是:

turn on time 1 1531957505408
turn on time 2  1531957505408
result 0
message from fn1
message from fn2

所以。。。如果我需要将结果发送到fn1或/和fn2以进行其他操作,我如何才能等待对承诺的响应。所有

返回
来自函数的承诺

您没有返回来自fn1和fn2的承诺

异步函数createElement(req,res){ 设fn1=()=>{ 返回新承诺((解决)=>{ 设置超时(()=>{ console.log(“来自fn1的消息”) 解决() },1000) }); } 让fn2=()=>{ 返回新承诺((解决)=>{ 设置超时(()=>{ console.log(“来自fn2的消息”) 解决() },1000) }); } const time1=new Date().getTime(); 日志(“打开时间1”,时间1) 让响应=等待承诺。全部([fn1(),fn2()) 日志(“等待响应”) const time2=new Date().getTime(); 日志(“打开时间2”,时间2) log('result:',time2-time1); }
createElement()
fn1
fn2
不返回已创建的承诺。让他们回报一个承诺,它应该会起作用。投票结束,作为离题。打字错误:缺少
return
s。您也可以删除这些箭头函数中的外部
{}
,以获得隐式返回:p