Почему мой код выдаёт мне сообщение Ошибка: дескриптор уже запущен? - PullRequest
0 голосов
/ 16 января 2019

Я получаю сообщение об ошибке: дескриптор уже работает! Кажется, элементы массива не ждут друг друга. как я могу это исправить?

            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 голосов
/ 16 января 2019

Не думаю, что вы можете отправить второй запрос с тем же объектом curl, пока не завершится первый. Если вы хотите отправить несколько одновременных запросов, вам нужно создать несколько объектов.

const CurlRequest = require('curl-request');
sites.forEach(site => {
    console.log(site);
    const curl = new CurlRequest;
    curl.get('https://' + site).then(...);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...