forEach中的Http请求-NodeJS

时间:2018-10-22 10:58:10

标签: javascript node.js ajax asynchronous npm

我有一些电子表格,其中的数据需要通过API上传。从电子表格中提取数据后,我创建一个对象并将其放入数组中。

我的想法是遍历此数组,并请求其中的每个对象,然后使用状态码显示成功或错误消息。   该代码似乎可以在少量(〜200个元素)下正常工作,但是当我尝试强调它(例如3500个元素)时,response.statusCode行会中断,因为response是未定义的。我以为我的异步部分不会有任何问题,因为只有在服务器响应时才调用回调,但是这里似乎不是这样。 为什么在回调中未定义response

这是我正在使用的一段代码:

array.forEach(function (element) {
        //Configure Request
        var options = {
            url: 'http://example',
            method: 'POST',
            headers: headers,
            body: element,
            json: true
        }

        request(options, function (error, response, body) {
            if (!error && response.statusCode == 200) {
                console.log(response.statusCode);
                console.log(body)
            } else {
                console.log(response.statusCode);
                console.log(error)

            }
        });
    });

谢谢!

1 个答案:

答案 0 :(得分:0)

请在async.mapLimit()中运行此代码

https://caolan.github.io/async/docs.html#mapLimit