在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.