我无法使用 then() 从 Promise 中检索数据。我哪里出错了?
async function A(){
await new Promise((resolve, reject) => setTimeout(()=>{},1000));
return 45;
}
A().then(data => console.log(data))
我正在使用 Node.js 运行此代码。 我期望输出打印 45。但是程序只执行了 1 秒并且不打印任何内容。 如果我删除超时语句,我可以打印 45。 我哪里出错了?
最佳答案
您需要解决您的 Promise,然后 return
才能运行。
async function A() {
await new Promise((resolve, reject) => setTimeout(() => resolve(), 1000));
return 45;
}
A().then(data => console.log(data))
您还可以从A
函数返回promise,然后使用async/await
。
function A() {
return new Promise((resolve, reject) => {
setTimeout(() => resolve(45), 1000)
})
}
(async() => {
const res = await A();
console.log(res)
})()
关于javascript - 无法从 Promise 中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54884733/