我遇到了 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
完成之前执行。检查源代码我确认这是正常行为,但由于这是一个快速应用程序,我的服务器响应错误信息。
我尝试使用waitfor进行getMagic
同步调用,但没有成功。这可能是我缺少的东西。有没有办法让each
函数像同步map
函数一样工作?