私はsails.jsフレームワークでnode.jsとasyncを使用しています。 データの配列に対していくつかの非同期DB操作を実行する関数を作成しようとしていますが、非同期の結果を親関数に返す簡単な方法を見つけ出すのに問題があります。 は、ここに私のコードです:別の関数内での非同期の使用
convertProductfields: function (articlesFromAurelia){
async.each(articlesFromAurelia, function (post, cb) {
Categories.find({name: post.Categoria})
.then(function(category){
post.cat_id = category[0].cat_id;
cb();
})
.fail(function(error){
cb(error);
})
}, function(error){
if(error) return res.negotiate(error);
sails.log.debug('articlesFromAureliaModified ' , articlesFromAurelia);
return articlesFromAurelia;
});
sails.log.debug('articlesFromAureliaNotModified ' , articlesFromAurelia);
return articlesFromAurelia;
}
もちろんの問題は、コードの実行順序です。私の関数は、Async操作の結果が利用可能なときにすでに返されています。ありがとう!!
は、最後の2行を削除し、上記の関数を使用します。 'convertProductfields'にコールバックを渡します –