在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Linux  HTML/ node如何等待異步函數(shù)執(zhí)行完成后再執(zhí)行后續(xù)代碼

node如何等待異步函數(shù)執(zhí)行完成后再執(zhí)行后續(xù)代碼

此問(wèn)題終結(jié),需求不適合使用node進(jìn)行實(shí)現(xiàn)。

核心代碼如下:

function funcA(callback){
    const pgClient = new Client();
    pgClient.connect();
    pgClient.query("############").then(res=>{
        const result = res;
        pgClient.end();
        callback(result);
    });
}

function funcB(callback){
    let result=null;
    funcA(function(res){
        result= res;
    });
    callback(result);
}

function funcC(){ //此函數(shù)不能使用async
    funcB(function(res){
        a = res;
    });
    console.log(a) // undefined
}

業(yè)務(wù)需求是使用anyproxy對(duì)response進(jìn)行處理,如果在anyproxy的beforeSendResponse中使用異步的話則anyproxy不會(huì)等待回調(diào),直接將原先的response發(fā)回客戶端了。

anyproxy是支持Promise的,但是我依然沒(méi)能實(shí)現(xiàn)在回調(diào)里修改response,都是修改之前就把原response發(fā)回去了。

我需要調(diào)用funcB給a賦值,funcB中需要去PostgreSQL數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)(用的pg只能異步),然后回調(diào)回來(lái)之后還沒(méi)等賦值就給返回個(gè)空的result回去了,很絕望。

回答
編輯回答
傲寒

async await 語(yǔ)法了解一下

2018年5月23日 18:29
編輯回答
鐧簞噯

這個(gè)用promise解決最合適

2018年1月30日 14:46
編輯回答
空白格
function funcB(callback){
    funcA(function(res){
        callback(res);
    });
}

function funcC(){ //此函數(shù)不能使用async
    funcB(function() {
      console.log(a);
    }); 
}

除了回調(diào),別無(wú)他法

2018年6月27日 16:06
編輯回答
孤巷
 async.parallel

了解一下

2017年9月9日 09:20