次のような郵便番号の配列があります。
zipCodes = [1234, 5678, 1357, 2468];
次に、これらの郵便番号に基づいて場所を取得する必要があります。私は次のようにしています:
locations = [];
zipCodes.forEach(function(zip) {
Addresses.findOne({ zipCode: zip }, function(error, address) {
//assuming it is a success
locations.push(address);
}
});
//data which works on locations
問題は、場所で機能するデータ(最終的に)がすべてのアドレスを持っていないことです-少なくともアクセスされているとき。5 秒から 10 秒遅らせると (zipCodes.forEach() の後に setTimeOut を使用)、場所にはすべての住所が含まれます。
私が考えているのは、push()
場所へのアクセスが非同期に発生し、最終的に場所にアクセスするときに間に合わないことが原因であると思われます。
setTimeOut() を使用せずにアクセスする前に、すべてのアドレスが場所に入力されていることを確認するにはどうすればよいですか?