0

我有一些.find()疑问,我不确定等待所有回调完成的好方法是什么。

我的意思是,我可以做一些计数器并在每个回调函数上增加它,并在每次它更改时检查它,但我觉得这真的很麻烦。

然后有一些像 and 这样的库asyncQ我不确定我是否想使用它们来等待一些回调。

所以,我的问题是:你有没有遇到同样的问题,你是如何解决的?

4

1 回答 1

2

每次调用回调时都有一个增加的计数器并不脏,而是大多数库在后面所做的事情。然而,这是使用异步等待一些回调的一种方法:

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。

于 2013-09-10T11:29:50.533 回答