node-orm2 の非同期動作に問題があります。次のようなクエリがあります。
req.models.posts
.find(...)
.order('-whatever')
.each(doMagic) //Problem happens here
.filter(function(post) { ... })
.get(callback);
function doMagic(post, i) {
post.getMagic(function(err, magic) {
...
});
};
私の問題は、内部で発生することpost.getMagic()
は非同期であるため、コールバック関数がdoMagic
終了する前に実行されることです。ソース コードを確認したところ、これは正常な動作であることが確認されましたが、これはエクスプレス アプリであるため、サーバーが間違った情報を返します。
waitforgetMagic
を使用して同期への呼び出しを試みましたが、成功しませんでした。これはおそらく私が見逃しているものです。each
関数を同期関数のように機能させる方法はありmap
ますか?