nodejs Как исправить `browser.newPage не является функцией`, использующей кукловод-ядро? - PullRequest
1 голос
/ 08 мая 2019

Я пытаюсь использовать ядро ​​Pupetteer, но когда я запускаю свой код.

const puppeteer = require('puppeteer-core');
module.exports= run = () => {
    const url = 'https://example.com'
    const browser = puppeteer.launch();
    const page = browser.newPage().then(function(page){
    page.goto(url)
    return browser
};

run().catch(console.error.bind(console))

Я получаю эту ошибку TypeError: browser.newPage is not a function

1 Ответ

1 голос
/ 08 мая 2019

Проблема в вашем коде заключается в том, что кукловод работает с Promises , что означает, что большинство функций будет возвращать Promise вместо значения напрямую. Это означает, что ваш эфир должен использовать затем функцию или await операторы, чтобы получить значение.

Пример кода

module.exports = run = async () => {
    const url = 'https://example.com';
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto(url);
    return browser;
};

Обратите внимание, что функция теперь помечена как async, что делает ее неявно возвращающей Обещание. Это означает, что нужно дождаться завершения функции run(), вам придется вызывать ее из другой функции async, например:

(async () {
    const browser = await run();
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...