【发布时间】:2011-10-01 03:40:12
【问题描述】:
我是事件/回调样式编程和 NodeJS 的新手。我正在尝试实现一个小型 http 服务器,它使用 node-mysql 模块提供 ddbb 数据。
我的问题来自查询结构。由于经常有查询需要之前查询的结果才能运行,因此我无法同时(异步)运行所有这些查询,我不得不等待一些结果。
我的第一种方法是同时运行所有非依赖查询,然后循环,直到所有查询都设置了一个标志,说我完成了,所以我可以继续依赖(同步)查询,但是我不知道这是否是正确的做法。
类似这样的:
function x(){
var result_for_asynch_query_1 = null
var result_for_asynch_query_2 = null
mainLoop(){
// call non-dependant query 1
// call non-dependant query 2
// loop until vars are != null
// continue with queries that require data from the first ones
}
}
//for each browser request
httpServer{
call_to_x();
}.listen();
这样我可以在最终结果中节省一些时间,因为我不会以串行方式等待所有响应,而是等待最长的响应。
有没有常见的方法来做到这一点?任何我不遵循的设计模式?
【问题讨论】:
标签: javascript mysql node.js