为什么我的代码给我,错误:句柄已经在运行?

时间:2019-01-15 21:37:45

标签: javascript arrays curl foreach

我一直收到错误消息:句柄已经在运行!似乎数组项没有彼此等待。我该如何解决?

            const curl = new(require('curl-request'))();

            sites = ["disney.com", "surfline.com", "oregon.com", "addiction.com", "www.google.com", "captaindonsfishing.com", "www.surfline.com", "facebook.com", "clevelandclinic.com"];

            sites.forEach(function(site) {

            console.log(site);

            curl.get('https://' + site)
                        .then(({statusCode}) => {

                            console.log(site+" "+statusCode);

                        }).catch((e) => {
                            console.log(site+" "+e);
                });

            });

输出:

surfline.com错误:句柄已在运行!

oregon.com错误:句柄已在运行!

addiction.com错误:句柄已在运行!

www.google.com错误:句柄已在运行!

captaindonsfishing.com错误:句柄已在运行!

www.surfline.com错误:句柄已在运行!

facebook.com错误:句柄已在运行!

clevelandclinic.com错误:句柄已在运行!

disney.com [对象参数]

1 个答案:

答案 0 :(得分:1)

在第一个请求完成之前,我认为您无法使用相同的curl对象发送第二个请求。如果要发送多个并发请求,则需要创建多个对象。

const CurlRequest = require('curl-request');
sites.forEach(site => {
    console.log(site);
    const curl = new CurlRequest;
    curl.get('https://' + site).then(...);
});