nodejs异步嵌套请求

时间:2016-10-10 15:33:23

标签: javascript node.js asynchronous

我是异步编程的新手,我已经看到很多例子,你可以使用promises或异步库并行发送许多请求,但不是多轮请求,其中请求将取决于先前的请求。

问题: 我正在查询类似图形的数据库,请考虑:

    | node | connected |
    | 1    | 2         |
    | 2    | 3         |
    | 4    | 5         |

或以图形形式:

(1)-(2)-(3) (4)-(5)

基于输入节点ID(例如1),我需要提取可以跟踪到节点1的所有记录(在此示例中为[1,2,3]

我不确定如何使用异步编程实现它。 如果函数queryDB将id作为输入并返回连接的id,那么我可以这样做:

inputID = 1;
nodes = [1];
queryDB(inputID,function(a){
    nodes.push(a);
    queryDB(a,function(b){
        nodes.push(b)
    });
});

这会产生nodes = [1,2,3] 这显然不会很好地扩展。我正在寻找一种更好的方法来实现这一点,所以任何建议都会有所帮助。

0 个答案:

没有答案