【发布时间】:2017-01-01 16:03:59
【问题描述】:
使用 node.js,我想http.get 多个远程 URL,一次只能运行 10 个(或 n 个)。
如果本地发生异常(m次),我也想重试请求,但是当状态码返回错误(5XX、4XX等)时,请求被视为有效。
这对我来说真的很难理解。
问题:
- 无法尝试捕获 http.get,因为它是异步的。
- 需要一种方法来重试失败的请求。
- 我需要某种信号量来跟踪当前活动的请求计数。
- 当所有请求完成后,我想在一个列表中获取所有请求 url 和响应状态代码的列表,我想对其进行排序/分组/操作,因此我需要等待所有请求完成。
似乎对于每个异步问题都建议使用 Promise,但我最终嵌套了太多 Promise,并且很快就会变得无法加密。
【问题讨论】:
-
如果你嵌套了太多的 Promise,从 'then' 调用中更频繁地返回,并在相同的缩进级别上写下一个 'then'。
标签: javascript node.js asynchronous promise