【发布时间】:2014-05-30 10:01:59
【问题描述】:
我对 SailsJS 的水线中的并发性有点困惑。 目前我正在做这样的数据检索;
var results = {};
// Get user by id 5
User.find('5', function(err, user) {
results.user = user;
// when it resolves, get messages
Message.find({userId: '5'}, function(err, messages) {
results.messages = messages;
// when message query resolves, get other stuff
OtherStuff.find({userId: '5'}, function(err, otherStuff) {
results.otherStuff = otherStuff;
res.view({results});
});
});
});
问题是数据库调用不是并发的。每个请求都在前一个的承诺得到履行后启动。我想同时启动所有请求,然后以某种方式查看是否所有承诺都已实现,如果是,则继续将结果传递给视图。
如何通过数据库请求实现这种并发?
谢谢!
【问题讨论】:
-
你甚至没有使用承诺?
标签: node.js asynchronous concurrency sails.js waterline