当前位置: 首页 > 知识库问答 >
问题:

puppeteer抛出错误“UnhandledPromiserEjectionWarning”并崩溃

甘明朗
2023-03-14

我想截图一个网页,但无论我做什么木偶总是崩溃。

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)UnhandledPromiserEjectionWarning:#(使用节点--trace-warnings...显示创建警告的位置)(节点:27064)UnhandledPromiserEjectionWarning:未处理的承诺拒绝。这个错误可能是由于抛出一个没有catch块的异步函数内部,或者是由于拒绝了一个未用.catch()处理的承诺。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志--unhandled-rejections=strict(请参见https://nodejs.org/api/CLI.html#CLI_unhandled_rejections_mode)。(拒绝ID:1)(节点:27064)[DEP0018]拒绝警告:不推荐未处理得承诺拒绝.将来,未处理的承诺拒绝将以非零退出代码终止node.js进程。

共有1个答案

龚振
2023-03-14

您必须向Promise添加一个错误处理程序。
一旦Promise(在本例中为异步函数)抛出任何错误,它就会到达执行根,这在nodejs中会导致应用程序“崩溃”。
只需像这样调用函数:

(async () => {
    /* your code here */
})().catch(error => { console.error("Something bad happend...", error); });
``´
 类似资料:
  • 问题内容: 尝试运行我的Node.js程序,该程序已经运行了很长时间,但是现在突然不行了。我正在尝试找出问题所在,并且发现如果在此处发布以对其进行跟踪,将会很有帮助。这是日志输出: 坦率地说,我不知道为什么会抛出EPIPE错误,我已经检查了没有任何可能干扰的运行,并且它在与以前完全相同的shell中运行。如果有什么需要补充的,请告诉我。 问题答案: 报价文件 :在没有进程读取数据的管道,套接字或F

  • 我怎样才能解决这个问题?

  • NodeJS版本8.11-警告是“此错误源于在没有catch块的情况下抛出异步函数,或者拒绝未用.catch()处理的promise。” 这两个都不是真的,您可以通过检查我的测试用例看出这一点: 翻转标志,查看相同的代码运行时是否有错误。

  • 我尝试用木偶器生成pdf文件。它对一个页面很好,但当我尝试生成多页pdf文档时,我有一个bug的分页符。HTML模板用于下面生成。拜托,能帮我就帮我。复制的前提条件:以100%的高度填充第一页,并为下面的块添加标题。 HTML模板 生成PDF Bug在此输入图像描述

  • 我正在使用IntelliJ Idea 2017.2。而我的项目是Gradle构建的多模块项目。我已经给出了我的项目的一个版本。然后它就坠毁了。我重新启动了IntelliJ,得到了以下消息 文件->使缓存无效/重新启动 这次我又犯了一个错误。 我再次尝试项目。但总是得到相同的错误。我搜索了throguh互联网,得到了以下问题。

  • 当我尝试使用JQuery POST向服务器发送数据时,我得到以下错误。 我做错了什么? 未捕获的TypeError:在e处非法调用(https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js:4:7727)在Ab(https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.