Выявление ошибочного обещания с unhandledRejection - PullRequest
0 голосов
/ 03 мая 2018

У меня есть этот код:

// <-- add event on top of file
process.on("unhandledRejection", (reason, p) => {
        console.error("Unhandled Rejection at: Promise", p, "reason:", reason);
        // browser.close(); // <-- no need to close the browser here
});

const puppeteer = require('puppeteer');
async function getPic() {
    try{ // <-- wrap the whole block in try catch
      const browser = await puppeteer.launch(/*{headless: false}*/);
      const page = await browser.newPage();
      await page.setViewport({width: 1000, height: 500}); // <-- add await here so it sets viewport after it creates the page


      //await page.goto('https://www.google.com');  //Old way of doing. It doesn't work for some reason...

      page.goto('https://www.google.com/'); // async


      // wait for either of events to trigger
      await Promise.race([
        page.waitForNavigation({waitUntil: 'domcontentloaded'}),
        page.waitForNavigation({waitUntil: 'load'})
      ]);


      await page.screenshot({path: 'pic.png'});
      await browser.close(); // <-- close browser after everything is done
    } catch (error) {
      console.log(error);
    }
}

getPic();

И я получаю эту ошибку:

Unhandled Rejection at: Promise Promise {
  <rejected> Error: Navigation Timeout Exceeded: 30000ms exceeded
    at Promise.then (C:\...\pupet test\node_modules\pupp
eteer\lib\NavigatorWatcher.js:71:21)
    at <anonymous> } reason: Error: Navigation Timeout Exceeded: 30000ms exceede
d
    at Promise.then (C:\...\pupet test\node_modules\pupp
eteer\lib\NavigatorWatcher.js:71:21)
    at <anonymous>

Я прочитал, что событие 'unhandledRejection' генерируется всякий раз, когда Promise отклоняется, и обработчик ошибок не прикрепляется к обещанию в ходе цикла обработки события.

Итак, из этого конкретного сообщения об ошибке я не могу понять, что является причиной проблемы.

Так, как я могу выяснить, что является ошибочным обещанием, чтобы я мог далее понять, что пошло не так, и смягчить его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...