为什么我会收到以下警告,我该如何摆脱它们?
警告:

代码:

const puppeteer = require("puppeteer");

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto("https://dn.se", { waitUntil: "domcontentloaded" });
    var output = page.evaluate(() => {
        return;
    });
    await browser.close();
})();
环境:
  • macOS High Sierra
  • Node v8.5.0
  • puppeteer 师:1.9.0
  • 最佳答案

    您需要 await page.evaluate() ,因为它返回一个 promise :

    var output = await page.evaluate(() => {
      return;
    });
    

    确保您使用 process.on('unhandledRejection') 来监听未处理的 promise 拒绝,并在发生此类事件时正常关闭浏览器:
    process.on('unhandledRejection', (reason, p) => {
      console.error('Unhandled Rejection at: Promise', p, 'reason:', reason);
      browser.close();
    });
    

    您的最终代码应如下所示:
    'use strict';
    
    const puppeteer = require('puppeteer');
    
    (async () => {
      const browser = await puppeteer.launch();
      const page = await browser.newPage();
    
      process.on('unhandledRejection', (reason, p) => {
        console.error('Unhandled Rejection at: Promise', p, 'reason:', reason);
        browser.close();
      });
    
      await page.goto('https://dn.se', {
        waitUntil: 'domcontentloaded',
      });
    
      var output = await page.evaluate(() => {
        return;
      });
    
      await browser.close();
    })();
    

    关于javascript - 运行 Puppeteer 时出现 UnhandledPromiseRejectionWarning?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52797889/

    10-10 00:43
    查看更多