【发布时间】:2021-10-23 13:39:35
【问题描述】:
我在javascript中有这个功能
const getData = async() => {
try {
const serviceResponse = await someService("userId")
return serviceResponse
} catch (error) {
console.log(error);
}
}
const data = getData()
console.log(data)
每当我运行它时,我都会在控制台中得到它
Promise { <pending> }
但是当我在函数本身中打印数据时,我得到了想要的值
const getData = async() => {
try {
const serviceResponse = await someService("userId")
console.log.(serviceResponse)
} catch (error) {
console.log(error);
}
}
getData()
以下函数是我从另一个函数中定义的导入函数
exports.someService = async(date,locationId,workerType) => {
const value = await Attendance.find({})
return value
}
请有人解释一下发生了什么?
【问题讨论】:
-
async函数总是返回一个承诺。从async函数返回的任何非承诺值都隐式包装在承诺中并返回。获取serviceResponse需要做什么:getData().then(serviceResponse => { ... }) -
您需要等待您致电
getData,即。await getData()
标签: javascript ecmascript-6 promise