За последние 24 часа нас посетили 22768 программистов и 1259 роботов. Сейчас ищет 701 программист ...

Неправильная последовательность выполения в массиве с перебором

Тема в разделе "JavaScript и AJAX", создана пользователем MIHAHIM, 5 фев 2021.

  1. MIHAHIM

    MIHAHIM Новичок

    С нами с:
    23 янв 2021
    Сообщения:
    2
    Симпатии:
    0
    Доброго времени суток!

    Имеется следующий скрипт:
    Код (Javascript):
    1. let zaprosi = ["Запрос1", "Запрос2", "Запрос3"]const delay = (t) =>new Promise (res => setTimeout (res, t));
    2.  
    3. const findAndClick = async (channelName, td) => {
    4.     while (true) {
    5.         const blocks = Array.from(document.querySelectorAll('div#channel-info'));
    6.         let elem = blocks.find((item) => item.innerText.trim().toLowerCase() == channelName.toLowerCase())
    7.         if (elem) {
    8.             elem.parentNode.parentNode.querySelector('a#thumbnail').click();
    9.             return;
    10.         } else {
    11.             window.scrollBy(0, 5500);
    12.             await delay (td);
    13.         }
    14.     }
    15. }
    16.  
    17. ;(async function () {
    18.     for (const zap of zaprosi) {
    19.         document.querySelector('input#search').value = zap;
    20.         document.querySelector('button#search-icon-legacy').click();
    21.         await findAndClick('НАЗВАНИЕ КАНАЛА', 3000)
    22.     }
    23. })()
    Его суть: открыт сайт ЮТУБ. Взял 1ую переменную из "zaprosi", вставил в поисковую строку, нажал на поиск. Далее пошел поиск по странице на наличие определенного канала, если он не был найден - скролл страницы, до тех пор, пока не найдет.
    Далее клик по нужному видосу с нужного канала. Далее взял 2ую переменную из "zaprosi" и всё пошло по кругу. Потом третью...

    Проблема вот в чем: скролл и поиск запускаются раньше времени, и всё ступорится. Прошу помощи!