操纵up引发错误“ UnhandledPromiseRejectionWarning”并崩溃

时间:2020-04-26 18:26:24

标签: javascript node.js puppeteer

我想对网页进行截图,但是无论我做什么,木偶戏总是崩溃。

const puppeteer = require('puppeteer');
(async () => {
    const browser = await puppeteer.launch({
        headless: false
    });
    const page = await browser.newPage();  
    await page.goto('https://www.google.com/'); 
    await page.screenshot({path: 'screenshot/example.png'}); 
    await page.waitFor(5 * 1000); 
    await browser.close(); 
})();

我将以上代码另存为web.js,并在cmd中执行了节点web.js。 Chrome窗口出现后2秒钟崩溃了,该页面没有加载。

(节点:27064)UnhandledPromiseRejection警告:# (使用node --trace-warnings ...显示警告的创建位置) (节点:27064)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。该错误是由于在没有catch块的情况下抛出异步函数而引起的,或者是由于拒绝了未经.catch()处理的诺言而引起的。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志--unhandled-rejections=strict(请参见https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝ID:1) (节点:27064)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。

1 个答案:

答案 0 :(得分:1)

您必须在诺言中添加错误处理程序。
一旦您承诺的(在本例中为您的异步函数)引发任何错误,它将到达执行根,这将在nodejs中导致应用“崩溃”。
像这样调用您的函数:

(async () => {
    /* your code here */
})().catch(error => { console.error("Something bad happend...", error); });
``´