我使用Puppeteer库打开一个URL并处理所有请求的响应.有时在事件监听器page.on(‘response’)中我需要抛出一个错误,如下例所示.但是我无法以任何方式捕获这些异常,我总是得到未处理的承诺
const puppeteer = require('puppeteer'); (async () => { try { const browser = await puppeteer.launch(); const page = await browser.newPage(); page.on('response', (request) => { throw 'response error'; }); await page.goto('http://google.com/'); browser.close(); } catch (e) {} })();为避免该错误,您需要做的就是捕获异步函数的结果,这是一个Promise,并以某种方式处理它,即使只是通过console.error进行管道传输.
const puppeteer = require('puppeteer'); (async () => { try { const browser = await puppeteer.launch(); const page = await browser.newPage(); page.on('response', (request) => { throw 'response error'; }); await page.goto('http://google.com/'); browser.close(); } catch (e) {} })().catch(console.error);