关于async/await的疑问

希望等待一步操作完成之后,再往下执行 为啥这个不行


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()

}


长风秋雁
浏览 521回答 4
4回答

繁花不似锦

await 明显不是这样用的。await function1而不是&nbsp;await function1(function (){})如果function1不是返回的Promise,那么你用await肯定没效果

Cats萌萌

我使用了 bluebird 这个包const bluebird = require('bluebird');async function f(mysql_con){&nbsp; &nbsp; const query = bluebird.promisify(mysql_con.query.bind(mysql_con));&nbsp; &nbsp; const result1 = await query('XXX');&nbsp; &nbsp; const result2 = await query('XXX');&nbsp; &nbsp; console.log(result1,result2)}

慕运维8079593

你这个显然不能用async+await,要先promise化,你这个现在是用回调的形式
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript