javascript objection.js 的异步问题
javascript async problem with objection.js
好的,我正在使用 Objection.js 来处理一些数据库内容 node.js
我知道我遇到的错误对于学习如何使用异步函数的人来说很常见,但我似乎无法让它正常工作。我的异步函数在完成查询之前返回了一些东西(我认为)
async function getStatusSensor() {
const sensors = await StatusSensor.query()
.select('*').limit(1)
var sensor = sensors[0]
console.log(sensor.monitor + " from function")
console.log(sensor.status_type + " from function")
return sensor;
}
const sensor = getStatusSensor()
console.log(sensor.monitor)
console.log(sensor.status_type)
我得到的结果是这样的
undefined
undefined
3957b from function
20GPSChadsCtrl from function
这样我只能在查询它的函数中对返回的行进行操作。
我所追求的是一个简单的异步函数,我可以调用它来从数据库中获取特定的行。
感谢您的帮助!
由于 getStatusSensor
被标记为 async
,它将 return 一个承诺,您必须等待解决才能使用结果。
或者像这样(如果你从 另一个 async
函数调用它):
const sensor = await getStatusSensor();
或者像这样:
getStatusSensor().then(sensor => {
console.log(sensor.monitor)
console.log(sensor.status_type)
});
好的,我正在使用 Objection.js 来处理一些数据库内容 node.js
我知道我遇到的错误对于学习如何使用异步函数的人来说很常见,但我似乎无法让它正常工作。我的异步函数在完成查询之前返回了一些东西(我认为)
async function getStatusSensor() {
const sensors = await StatusSensor.query()
.select('*').limit(1)
var sensor = sensors[0]
console.log(sensor.monitor + " from function")
console.log(sensor.status_type + " from function")
return sensor;
}
const sensor = getStatusSensor()
console.log(sensor.monitor)
console.log(sensor.status_type)
我得到的结果是这样的
undefined
undefined
3957b from function
20GPSChadsCtrl from function
这样我只能在查询它的函数中对返回的行进行操作。 我所追求的是一个简单的异步函数,我可以调用它来从数据库中获取特定的行。 感谢您的帮助!
由于 getStatusSensor
被标记为 async
,它将 return 一个承诺,您必须等待解决才能使用结果。
或者像这样(如果你从 另一个 async
函数调用它):
const sensor = await getStatusSensor();
或者像这样:
getStatusSensor().then(sensor => {
console.log(sensor.monitor)
console.log(sensor.status_type)
});