我有一些.find()
疑问,我不确定等待所有回调完成的好方法是什么。
我的意思是,我可以做一些计数器并在每个回调函数上增加它,并在每次它更改时检查它,但我觉得这真的很麻烦。
然后有一些像 and 这样的库,async
但Q
我不确定我是否想使用它们来等待一些回调。
所以,我的问题是:你有没有遇到同样的问题,你是如何解决的?
我有一些.find()
疑问,我不确定等待所有回调完成的好方法是什么。
我的意思是,我可以做一些计数器并在每个回调函数上增加它,并在每次它更改时检查它,但我觉得这真的很麻烦。
然后有一些像 and 这样的库,async
但Q
我不确定我是否想使用它们来等待一些回调。
所以,我的问题是:你有没有遇到同样的问题,你是如何解决的?
每次调用回调时都有一个增加的计数器并不脏,而是大多数库在后面所做的事情。然而,这是使用异步等待一些回调的一种方法:
async.parallel({
ppl: Person.find.bind(Person, { status: 1 }),
catz: Cat.find.bind(Cat, { meow: 2 })
},
function (err, result) {
console.log(result.ppl, result.catz);
});
.bind() 只是一个快捷方式:
function (next) {
People.find({ status: 1}, next);
}
根据您的情况,您可能希望使用 async.series、.each 或 .waterfall。