Проблема в том, что вызов Parse происходит слишком часто? поставь await перед ним и сделай async функцию. Если Parse ходит куда-то по сети
корректнее будет спросить в @js_noobs_ru
ок
Вообще не сработало 😁 Открылось 72 браузера(Puppeteer) и начали очень много ошибок бить. Может есть какие-то либы?
Не совсем тебя понял, может если расскажу как работает мой то мы поймём друг друга. Мой по алшгоритму должен собрать все ссылки из страницы а потом передавать их в функцию, но не таким образом как это делает forEach xd
Я просто не очень понял из твоего кода, где именно возникает проблема. Если в строках forEach(... => { Parse() }) и тебе нужно, чтобы это все было последовательно, то решение простое -- дожидаться, пока Parse завершит работу. Как Parse отчитывается о завершении работы? callback или promise? Если callback, то вызывать Parse внутри коллбека. Если промис, то делать await или then. setTimeout чтобы чего-то дожидаться наподобие сети лучше никогда не использовать
Я думаю можно использовать в этой ситуации setTimeout так как на каждую страницу уходит не более 6.7 секунд
Да? А вдруг на сеть нагрузка чуть увеличится и будет 8 секунд? Это очень реальный сценарий. А может с сервером не так что-то и он вообще будет тянуть с ответом 60 секунд? Я не вижу препятствий сделать по-нормальному, на промисах
Просто я представления о них не понимаю и не знаю как отредактировать код чтобы работало как ты подсказал
вот этот fetch, который в самом начале, запускается один раз?
Да
.forEach(async currLink => { await Parse(currLink); }); всё
пробовал, не работает)
Нифига ты умный
что не так
Мда. И правда насоветовали.
?
Либо внутри async функции использовать of как тут предлагают
Та не, нельзя. Та же проблема будет
Что ты создашь length параллельных промисов в самом начале
Потому что сначала должен будет завершится текущий синхронный поток исполнения, то есть отработать весь цикл
А, блин, да, тупанул Тогда for of нужен
Обсуждают сегодня