【发布时间】:2013-10-23 12:35:07
【问题描述】:
我遇到了对于 Node JS 初学者来说似乎是一个传统问题,以及异步请求。
我有未知数量的 URL 由用户生成,随后存储在我的 Node JS 服务器上的一个数组中。 Node JS 服务器必须遍历这些 URL,依次向每个 URL 发出请求。它必须按顺序这样做,并且必须等待每个响应才能移动到下一个 URL(当将发出新请求时)。最终结果应该是所有响应的有序集合(恰好是 JSON),作为 JSON 对象很好地存储在一起,准备好后又可以发送回客户端。
我认为我应该使用 async NodeJS 库,并且我已经在使用 needle 来发出请求。
URLs = ["http://a", "http://s", "http://d"];
async.eachSeries(URLs, function (URL, callback) { ..... });
我不清楚如何使用异步来确保 Needle 请求已完成,并在转到下一个 URL 请求之前相应地存储该响应。下面是我的 Needle 请求示例。
needle.get(URL, options, function(error, response, body){ ... });
欢迎对整个问题提供部分或完整的解决方案。
【问题讨论】:
-
我在这里使用了递归方法:stackoverflow.com/a/6048595/2063246(非常适合我)
-
我会尽可能推荐 promises
标签: javascript json node.js asynchronous