js promise队列和循环

时间:2017-08-18 19:14:13

标签: javascript vue.js es6-promise

我正在使用节点包p-queueGitHub repo),以确保来自我的应用的axios.get请求是连续的,并且最高速率为每秒1次。

我需要根据前一个请求中的数据向队列添加一些请求,所以我想我只是循环一个数组并根据该数组的长度向p-queue添加新的axois promise,但我保留得到奇怪的错误

我无法直接显示代码,但这是一个具有相同问题的小例子:

var ml = [1, 2, 3, 4]
for (var i = 0; i < ml.length; i++) {
  promq.add(() => axios.get('http://example.org/' + ml[i]))
  .then(response => {
    console.log(response.data)
  })
}

这将正确地排列4个承诺,axios将正确地产生4个http 404响应,但这不是因为它试图访问example.org/1,而是它发出4个请求example.org/undefined

为什么这不起作用?

0 个答案:

没有答案