“asynchronous杂耍” – 它真的要求我做什么?

我正在通过learnyounode项目学习learnyounode 我已经完成了前几个任务,他们都似乎相当简单。

然后,我进入了“asynchronous杂耍”之一,这个任务的描述在我需要做的事情上完全超越了我的头脑。

其要点是,我需要编写一个接受3个URL作为参数的Javascript,但是将正确的响应与正确的服务器相关联。 作业本身指出,你不能天真地认为事情将正确地与正确的URL相关联。

我提出的(不正确的)代码certificate限制是正确的:

 var http = require('http'); var bl = require('bl'); var httpCallback = function(response) { var pipeHandler = function (err, data) { if(err) return console.error(err); console.log(data.toString()); }; response.pipe(bl(pipeHandler)); }; var juggleAsyncConnections = function(connA, connB, connC) { http.get(connA, httpCallback); http.get(connB, httpCallback); http.get(connC, httpCallback); }; juggleAsyncConnections(process.argv[2], process.argv[3], process.argv[4]); 

这个问题,也就是我的问题是,处理asynchronous连接处理的正确方法是什么,以及我需要理解正确的底层概念是什么?

注意:我见过其他问题,比如“OMG为什么我的解决scheme不工作?” 我不是在问,我特意着手看到“天真”的解决scheme失败了。 我不明白为什么它不起作用的基本原则,或什么原则实际上工作。 另外,我并不是要求某人“为我解决问题”。 如果可以解释一般algorithm,我可以自己实现。

计数callback是pipe理Node中的asynchronous的基本方法之一。 […]

这是一个重要的部分。

你知道有多lessinput(3),因此,你知道应该有多less输出。 保持一个正在运行的计数器,然后检查是否在打印到屏幕之前收到全套数据。 你也想保持原来的顺序(现在如果只有一个数据types有数字索引…:咧嘴:)。

祝你好运!