Node.js的http处理多个url

众所周知,Node.js是单线程、非阻塞的JavaScript运行环境,其中的一个原理是在内部执行“事件轮询”(Event loop)来查询正在处理的状态。但是,由于每一个事件的属性不同,所需要处理的时间也不同,因此当所有事件完成是并且调用回调函数的顺序是不同的,所以系统带有一定的随机性。

但是当我们希望事件的一组输出是按照我们输入的顺序,则我们需要一点小trick来实现。 例子:我们希望http模块能够接受三个参数(url),并且按照我们输入的顺序输出对应url的内容。 解决方法:使用简单的计数器来统计,并用数组存储中间结果。 这样通过设置`results`数组保存各自的结果,这样在获取完三个url的内容的时候(通过`counter`来实现),按照正确的顺序输出结果。
comments powered by Disqus