当前位置 : 主页 > 网页制作 > Nodejs >

node.js – 如何捕获事件侦听器中的异常?

来源:互联网 收集:自由互联 发布时间:2021-06-16
我使用Puppeteer库打开一个URL并处理所有请求的响应.有时在事件监听器page.on(‘response’)中我需要抛出一个错误,如下例所示.但是我无法以任何方式捕获这些异常,我总是得到未处理的承诺
我使用Puppeteer库打开一个URL并处理所有请求的响应.有时在事件监听器page.on(‘response’)中我需要抛出一个错误,如下例所示.但是我无法以任何方式捕获这些异常,我总是得到未处理的承诺拒绝错误.我该如何处理这些异常?我不想使用process.on(‘unhandledRejection’),因为它根本无法解决我的问题.

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);
网友评论