Javascript 无法从承诺中检索数据
我无法使用then()从承诺中检索数据。我哪里做错了Javascript 无法从承诺中检索数据,javascript,node.js,promise,Javascript,Node.js,Promise,我无法使用then()从承诺中检索数据。我哪里做错了 async function A(){ await new Promise((resolve, reject) => setTimeout(()=>{},1000)); return 45; } A().then(data => console.log(data)) 我正在用nodejs运行这段代码。 我希望输出打印45。但是程序只执行1秒,不打印任何内容。 如果删除超时语句,则可以打印45。 我哪里出错了
async function A(){
await new Promise((resolve, reject) => setTimeout(()=>{},1000));
return 45;
}
A().then(data => console.log(data))
我正在用nodejs运行这段代码。
我希望输出打印45。但是程序只执行1秒,不打印任何内容。
如果删除超时语句,则可以打印45。
我哪里出错了?您需要解决您的承诺,然后
return
才能运行
async function A(){
await new Promise((resolve, reject) => setTimeout(()=>{},1000));
return 45;
}
A().then(data => console.log(data))
异步函数A(){
等待新的承诺((解析,拒绝)=>setTimeout(()=>resolve(),1000));
返回45;
}
A()。然后(data=>console.log(data))
您需要解决您的承诺,然后return
可以运行
异步函数A(){
等待新的承诺((解析,拒绝)=>setTimeout(()=>resolve(),1000));
返回45;
}
然后(data=>console.log(data))
函数A应该返回一个承诺
函数A(){
返回新承诺((resolve,reject)=>setTimeout(()=>resolve('hello'),1000));
}
然后(data=>console.log(data))
函数A应该返回一个承诺
函数A(){
返回新承诺((resolve,reject)=>setTimeout(()=>resolve('hello'),1000));
}
A()。然后(data=>console.log(data))
函数A应返回一个承诺,并与IFI(立即函数调用方法)一起使用async/await
函数A应该返回一个承诺,并与IFI(立即函数调用方法)一起使用async/await
谢谢Vracar,这起作用了,因为我还没有解决承诺,你能解释一下为什么程序在1秒后停止而不是无限期地等待(承诺处于挂起状态)。它在
wait
关键字处停止,因为有代码等待解决承诺。但是由于您的承诺从未得到解决,return
从未被调用。是的,为什么等待
停止程序执行,而不是等待承诺得到解决?我发布的代码从未到达return
语句,但它在1秒后停止执行。我无法理解为什么它停止而不是等待。@John Bonda我不知道你在问什么。谢谢Vracar,这起作用了,因为我没有解决承诺,你能解释为什么程序在1秒后停止而不是无限期等待(承诺处于待定状态)。它在wait
关键字处停止,因为那里的代码等待承诺得到解决。但是由于您的承诺从未得到解决,return
从未被调用。是的,为什么等待
停止程序执行,而不是等待承诺得到解决?我发布的代码从未到达return
语句,但它在1秒后停止执行。我无法理解为什么它停止而不是等待。@John Bonda我不知道你在问什么。