배열의 각 항목에 대해 Firebase Cloud Firestore를 비동기 적으로 쿼리하려고합니다. async.map 함수에 대한 나의 이해는 배열의 각 항목에 대해 함수를 수행하고 모든 항목이 처리 된 후에 만 콜백을 시작한다는 것이 었습니다. 그러나 아래의 콜백은 첫 번째 쿼리 바로 다음에 실행되고 결과가 사용 가능해지기 전에 실행됩니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?Javascript 비동기 맵 일찍 완료
var db = admin.firestore();
var getData = function (item, doneCallback) {
db.collection('myCollection').doc(item).get()
.then(results => {
console.log("Callback here");
return doneCallback({
"name": results.data().name,
"id": results.data().id,
"phone": results.data().phone,
});
});
};
async.map(myArray, getData, function (err, results) {
console.log("Finished");
for (var i=0;i<results.length; i+=1){
console.log(results[i].name);
console.log(results[i].id);
console.log(results[i].phone);
}
});