2

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ますか?

4

1 に答える 1