0
この非同期マップでは、最終的なコールバック引数が「イベント中」ログアウトする前に呼び出されています。 (私はちょうどそれを複雑にするのを避けるためにconsole.logを使用しています)...非同期マップ - 早期に実行されるコールバック
私は最後にログインしています。最終コールバックが直ちに発砲するのを止めるにはどうすればよいですか?
const addEvents = (seasons, cb) => {
async.map(seasons, (season, seasonCb) => {
console.log('in map');
Model.Events.find({season_id: season._id.toString()}, (err, events) => {
if (err) {
console.log('in err');
return seasonCb(err);
}
console.log(events, 'events');
});
console.log('finish');
seasonCb(null, season);
}, (err) => {
if (err) {
console.log('in err');
return cb(err);
}
console.log(seasons, 'in last cb');
cb(null, seasons);
});
};
イベントはイベントの前にも呼び出されていますか? –
はいそれはマップにログインしてから、各反復ごとにまっすぐに終了してから、最後にcb、次にイベントが最後に終了します。 –
は、seasonCb(null、season)をfind関数に移動し、最後の関数の引数としてシーズンを追加することでこれを解決しました –