@vsn13

Как использовать setInterval внутри async/await?

Сори за дурацкий вопрос, но совсем не знаком со всей этой асинхронностью.
Как мне использовать интервал внутри такого вот кода (код ниже под спойлером)? Это Puppeteer который запускает headless-браузер, и авторизируется на сайте откуда мне нужно дергать данные раз в 500мс как-то так:
Скрин
QjusF8x.png


Эти данные мне нужно писать куда-то в локальный файл. В общем-то вот код, но почему-то именно часть с интервалом ничего не делает и не выводит в консоль, хотя я ожидал, что она будет каждые 500мс дергать данные из этого селектора и выводить. При этом ошибок тоже никаких.

Код
(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://url.com');

    // Auth
    await page.click(selector.login.tab);
    await page.click(selector.login.email);
    await page.keyboard.type(settings.username);
    await page.click(selector.login.password);
    await page.keyboard.type(settings.password);
    await page.click(selector.login.button);

    // Waiting for loading
    await page.waitFor(10000); // TO FIX: there we should wait for loaded element or selector
    await page.evaluate(() => {
            setInterval(() => {
                return console.log(document.querySelector('div._captions > p._value').innerText + document.querySelector('div._captions p._hl-value').innerText);
            }, 500);
        });

    //await page.screenshot({path: 'screenshot.jpg'});
    await browser.close();
})();

  • Вопрос задан
  • 1774 просмотра
Пригласить эксперта
Ответы на вопрос 1
drfisher
@drfisher
Пишу JS
await page.evaluate(() => {
  return new Promise((resolve) => {
    setInterval(() => {
      console.log(document.querySelector('div._captions > p._value').innerText + document.querySelector('div._captions p._hl-value').innerText);
      resolve();
    }, 500);
  });
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы