0
我執行「GET」請求一個URL取回的響應,所以我有一個處理請求請求模塊使用
var makeRequest = function(objs, callback){
var url = 'adasda..';
//...
var result = null;
request(url, function(error, response, body){
if(!error && response.statusCode === 200){
result = body;
callback(null, body)
}
});
return result;
}
在我的主要功能的功能我正在調用上述功能
function main(values, callback){
//...some logic
var newValue={....}
if(some conditional){
newValue = makeRequest(values,callback); //newValue gets appended with new data
}
sendData(null, newValue, callback); //this function does a post
}
var sendData = function(....){}
我注意到一旦makeRequest的得到執行,它會立即向前走,然後執行送出數據和那是因爲要求模塊是一個異步操作。
我該如何等待newValue對象被填充,然後sendData()應該被調用?
你不能等。您必須在回調中使用響應,並且在收到響應後您想要執行的任何代碼必須實際處於回調中。這就是你如何編程異步響應。它與同步編程不同。副本中提供了許多示例。 – jfriend00