在Node.JS的callback里添加flow.add()(asyncblok模块的东东)

我试图控制我的代码stream白色Node.JS模块称为asyncblock,它使用光纤。 我想我有一些truble理解它的行为,下面的代码不起作用,stream程不等待..

person.save(function(err){ if(err) throw err; flow.add('goOn'); }); flow.wait('goOn'); 

但是这个效果很好:

 person.save(flow.add('goOn')); flow.wait('goOn'); 

我做错了什么?

这是完整的代码: http : //pastebin.com/UCsqPNiF

这就是为什么你的例子不起作用:

第一个操作是asynchronous的,所以第一个操作是flow.wait调用。 由于flow.add还没有被调用,所以实际上并没有等待。

请注意,您的示例工作是使用asyncblock的正确方法。 我正在改变asynchronous块,这会使得asynchronous添加任务变得更加自然,但是这个例子不应该是必须的。

我不能说我以前使用过asyncblock,但看起来像add()返回一个callback,你将需要执行。

 person.save(function(err){ if(err) throw err; flow.add('goOn')(); // Execute the callback! }); flow.wait(); // wait() takes no arguments.