【发布时间】:2015-04-28 05:33:35
【问题描述】:
发出未知数量的异步 GET 请求的最佳解决方案是什么?
例如,您有以下 url,'http://www.example.org/',并且您想向以下路径发出一组异步请求:
[
'http://www.example.org/A-1.html',
'http://www.example.org/A-2.html',
'http://www.example.org/A-3.html',
'...',
'http://www.example.org/B-1.html'
'http://www.example.org/B-2.html'
'...'
]
等等。如果,比如说,'...C-12.html' 不存在,你会得到一个无效的响应头代码。您将如何进行一组并行请求?
【问题讨论】:
-
当您收到其中一个请求的错误时,您想做什么?停止所有其他请求?忽略那个错误并继续前进?两个可以帮助你的工具是 promises 和 node.js 的异步库。
-
并行获取请求使用npmjs.com/package/async并行方法。
-
是的,我以前使用过这两个库,但很想看到一个最佳且优雅的解决方案。我希望停止对该特定迭代器的请求;即 A-1、A-2、A-3,一旦到达 A-20(未定义),这组请求就会停止,但是,B-Z 仍在处理中。
标签: node.js asynchronous web-scraping