Dunaevlad
@Dunaevlad

Как исправить ошибку SyntaxError: missing ) after argument list?

const puppeteer = require('puppeteer')
const results = [];

(async () => {
    const browser = await puppeteer.launch({
        headless: false
    })
    const page = await browser.newPage()
    await page.goto("https://capuk.org/i-want-help/courses/cap-money-course/introduction", {
        waitUntil: 'networkidle2'
    });

    await page.type('#search-form > input[type="text"]', 'bd14ew')
    await page.click('#search-form > input[type="submit"]')

    await page.on('response', response => {
        if (response.url() == "https://capuk.org/ajax_search/capmoneycourses") {
            console.log('XHR response received');
            console.log(await response.json());
        }
    });
}
)()
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
Aetae
@Aetae
Тлен
await page.on('response', response => {
->
page.on('response', async response => {.

page.on не возвращает Promise, он подписывается на события.

Это очевидно, но на всякий случай: то что просходит в callback'e page.on - это уже будет отдельный асинхронный (псевдо)поток, который пойдёт параллельно основному.

Если вы уверены, что это событие сработает только раз, и вам надо его дождаться в основном "потоке", то следует вручную завернуть его в Promise, условно так:
const json = await new Promise(resolve => page.on('response', function onResponse(response) {
  if (response.url() == "https://capuk.org/ajax_search/capmoneycourses") {
    page.off('response', onResponse);
    resolve(response.json());
  }
})); 
console.log('XHR response received');
console.log(json);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы