問題が発生しましたが、それを修正するための手順がわかりません。現在、すべてのデータが正しく取得されていますが、responseCallback が起動していないため、応答配列を使用して res.json 呼び出しに到達していません。ここでのガイダンスは大歓迎です!ありがとう。
明確にするために、問題は aysnc.each コールバックにあります。
var updatedBusinesses = [];
googleplaces.radarSearch({location:"lat,long",radius:"10000",keyword:"keywordhere"},function(err,response){
if(err){return next(err);}
async.each(response.results,function(currResponse,responseCallback){
Business.findOne({"placesId":currResponse.place_id,"claimed":true}).populate({path:'services',select:''}).exec(function(err,business){
if(err){return next(err);}
if(business !== null){
Service.populate(business.services,{path:'employees',select:'_id appointments firstName lastName username avatarVersion'},function(err,newBusiness){
if(err){return next(err);}
googleplaces.placeDetailsRequest({placeid:business.placesId},function(error,placesResult){
if(error){return responseCallback(error);}
console.log("RESULT OF THE GOOGLE PLACES DETAIL SEARCH")
placesResult.result.info = business;
updatedBusinesses.push(placesResult.result);
// Here the data is populated and correct.
// console.log(updatedBusinesses)
responseCallback();
});
})
}
})
},function(err){
if(err){return next(err);}
console.log("called")
res.json(updatedBusinesses);
})
})
これは、更新されたビジネス情報をクライアントに返すことを望んでいる場所ですが、これは決して発火しません。
},function(err){
if(err){return next(err);}
console.log("called")
res.json(updatedBusinesses);
})
})