初めてasync.jsを使用して、私が何かを見逃しているような気がしています。私はブルートフォースで働く状態になっていて、他のデータのセット。私がここに見ていないものがあるかどうか知りたいです。async.jsでのeachOfのチェイン
私はそれぞれが配列を含むオブジェクトの配列を持っています。私はサブアレイを繰り返し、mongoへの呼び出しでそれを使用し、すべてが返された後に結果で何かをしたいと思います。データは次のようになります。コードで
データ
productVersions: [
versionA: {
relevantField: [
{
relevantId: value
},
{
relevantId: value
}
]
},
versionB: {
relevantField: [
{
relevantId: value
},
{
relevantId: value
},
{
relevantId: value
}
]
}
];
私はproductVersions
にrelevantField
で各オブジェクトの呼び出しをしたいと、すべてのコールの後、両方のバージョンのために作られていると、いくつかのものを行います結果。コードは次のようになります。
コードこれは今の機能であることを起こる
async.forEachOf(productVersions, function(version, versionIndex, versionCallback){
async.forEachOf(relevantField, function(object, objectIndex, objectCallback){
Users.findById(object.relevantId, function(err, model){
// get some information from mongo
objectCallback();
});
}, function(){
versionCallback();
});
}, function(err){
// Do something with all the results
});
私がいたので、タイミングと運のと呼び出した場合だ気持ちを持っているより多くのデータがあった場合の遅くそれはうまくいかないでしょう。私はここで何か悪いことをしていますか?より良いアプローチがありますか?