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)
});