Node Js中的回调函数问题?

时间:2013-08-05 12:30:10

标签: javascript node.js

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

是否有办法更改此流程,以便第一个回调函数完成执行,然后控制从DAO返回到服务和控制器。

2 个答案:

答案 0 :(得分:0)

你必须传递你的代码部分,这些部分应该在你的DAO东西作为回调到你的DAO层之后执行。这通常看起来有点难看,但它是node.js(asynchronus)方式,有时称为“callback hell”。如果您需要更多信息,请提供一些您正在尝试做的代码示例。

答案 1 :(得分:0)

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