我正在使用带有Node 8的knex 0.14.2,而我正在使用async / await语句。但我只是找到了一个需要根据请求构建where
子句的情况:我构建了我的主查询,执行select
并向主要查询添加where
,具体取决于在结果上。所以我试过
mainQuery.where(async function() {
const res = await knex('table').select();
if(res.x) this.where('y', 'x');
})
但是在跟踪查询时,我看到主要的一个没有where子句,而select则在它之后执行。
我认为await
得不到很好的支持,但有没有正确的方法来做这件事?
谢谢
答案 0 :(得分:1)
怎么样:
const res = await knex('table').select();
await mainQuery.where(function() {
if(res.x) this.where('y', 'x');
})
Knex永远不会支持异步解析内部构建器方法回调(换句话说,它不支持将返回promise的回调函数)。