-1

我正在使用节点 js,我的代码控制器、服务、DAO 中有三层。执行流程是通过服务从控制器到 DAO,然后控制再次从 DAO 回到控制器。DAO 层中有回调函数,它们将输出设置为变量。但问题是回调函数在控制返回控制器后执行。我最终得到一个未定义的变量作为输出。这是因为 Node 是异步的。

有没有办法改变这个流程,让第一个回调函数完成执行,然后控制权从 DAO 回到服务和控制器。

4

2 回答 2

0

作为一个起点,您可能想尝试使用异步库:https ://github.com/caolan/async或“npm install async”。听起来您可能想要的是 async.series(),它允许您构建某些回调集以按顺序运行,从而使您可以更好地控制程序的流程。这里有很好的教程:http ://www.sebastianseilund.com/nodejs-async-in-practice 。

于 2013-08-05T13:45:40.433 回答
0

您必须传递您的代码部分,这些部分应在您的 DAO 内容完成后作为对您的 DAO 层的回调执行。这通常看起来有点难看,但它是 node.js(异步)方式,有时被称为“回调地狱”。如果您需要更多信息,请提供一些您正在尝试做的代码示例。

于 2013-08-05T12:38:26.440 回答