const { MonitorDB: config } = require( '../config' ) /** * Get the latest temperature from DB */ async function get(ctx, next) { const MonitorDB = require( 'knex' )({ client: 'mysql' , connection: { host: config.host, port: config.port, user: config.user, password: config.pass, database: config.db, charset: config.char, } }) MonitorDB( 'temperature' ).select( '*' ).then( function (rows) { ctx.state.code = 200 ctx.state.data = { msg: 23.5 } }) . catch ( function (error) { console.log(error) tx.state.code = 500 ctx.state.data = { msg: error } }) } |
如上代码想实现一个get操作,这个操作会去查询DB,然后根据查询的结果返回不同的值。
但是每次API调用都不能then执行就返回了。我也知道这个then是异步调用,但是我怎么能够让这个get 函数停下来等待then执行,然后再返回呢?
我今天也遇到这个,很痛苦。刚刚尝试在成功了。
你可以这么做, 在 MonitorDB前面 加 await
await MonitirDB('tem...').blabalbalbal