我想把從數據庫中查詢得到的值儲存到一個變量中然后打印出來,但數據庫查詢是異步的,打印函數總是先一步調用,查詢函數后一步調用,打印出來的值是空的。下面是代碼。varsqlite3=require('sqlite3').verbose();varasync=require('async');varstr="";vardb=newsqlite3.Database('score.db',function(){db.all("select*fromscore",function(err,res){if(!err){//console.log(JSON.stringify(res));str=JSON.stringify(res);console.log(str);//@1這里輸出的是有值的str}else{console.log(err);}});});console.log(str+"jjjj");//@2這里輸出的Str,是沒有值的空的下面是輸出結果:jjjj這是@2console打印的,Str是空的[{"id":1,"name":"jim","score":"100"},{"id":2,"name":"tom","score":"200"}]這是@1console打印的,str是有值的。請問怎樣讓查詢回調先執行,讓str獲得值,傳遞出來,然后再執行最后一句@2的打印語句。javascript的異步回調真令人頭痛啊,一直不知道怎么解決。
nodejs怎么同步從一個數據庫查詢函數中返回一個值?
慕尼黑8549860
2019-04-16 16:58:09