我想把從數(shù)據(jù)庫(kù)中查詢得到的值儲(chǔ)存到一個(gè)變量中然后打印出來,但數(shù)據(jù)庫(kù)查詢是異步的,打印函數(shù)總是先一步調(diào)用,查詢函數(shù)后一步調(diào)用,打印出來的值是空的。下面是代碼。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,是沒有值的空的下面是輸出結(jié)果:jjjj這是@2console打印的,Str是空的[{"id":1,"name":"jim","score":"100"},{"id":2,"name":"tom","score":"200"}]這是@1console打印的,str是有值的。請(qǐng)問怎樣讓查詢回調(diào)先執(zhí)行,讓str獲得值,傳遞出來,然后再執(zhí)行最后一句@2的打印語句。javascript的異步回調(diào)真令人頭痛啊,一直不知道怎么解決。
nodejs怎么同步從一個(gè)數(shù)據(jù)庫(kù)查詢函數(shù)中返回一個(gè)值?
qq_遁去的一_1
2019-03-30 11:36:49