希望等待一步操作完成之后,再往下执行 为啥这个不行async function f(mysql_con){ await mysql_con.query("select * from stu_detail where stu_no = ?",['2015130'],async function(err,result,fields){ console.log(result) console.log(q.sql) if(result.length == 0){ console.log("数据为空"); await mysql_con.query("insert into stu_detail set ?",{stu_no:"2015130"},function(err,result,fields){ console.log(a.sql) if(err){ console.log(err) } console.log("charu") console.log(result) }) }else{ await mysql_con.query("update stu_detail set ?",{stu_name:"陈翰轩"}); } for(var i=0;i<fields.length;i++){ // console.log(fields[i]) console.log(fields[i].name) } // pools[0].end(); // exitProcess() }) mysql_con.end(); exitProcess()}
4 回答

繁花不似锦
TA贡献1851条经验 获得超4个赞
await 明显不是这样用的。
await function1
而不是
await function1(function (){
})
如果function1不是返回的Promise,那么你用await肯定没效果

Cats萌萌
TA贡献1805条经验 获得超9个赞
我使用了 bluebird 这个包
const bluebird = require('bluebird');
async function f(mysql_con){
const query = bluebird.promisify(mysql_con.query.bind(mysql_con));
const result1 = await query('XXX');
const result2 = await query('XXX');
console.log(result1,result2)
}
添加回答
举报
0/150
提交
取消