Javascript “木偶演员投掷错误”;未处理的PromisejectionWarning“;和崩溃

Javascript “木偶演员投掷错误”;未处理的PromisejectionWarning“;和崩溃,javascript,node.js,puppeteer,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/

我想拍一张网页截图,但不管我做什么,木偶演员总是崩溃

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)未处理的PromisejectionWarning:# (使用
节点--跟踪警告…
显示创建警告的位置) (节点:27064)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志
--unhandled rejections=strict
(请参阅)。(拒绝id:1)
(节点:27064)[DEP0018]弃用警告:未处理的承诺拒绝已弃用。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程。

您必须在承诺中添加错误处理程序。
一旦您承诺的(在本例中是您的异步函数)抛出任何错误,它就会到达执行根目录,这在nodejs中会导致应用程序“崩溃”。
只需按如下方式调用函数:

(异步()=>{
/*你的代码在这里*/
})().catch(error=>{console.error(“发生了不好的事情…”,error);});
``´

未处理的承诺意味着您忘记了此区块的
try catch
。把它放在那里,在你的捕获中,检查抛出了什么错误。thx,问题已经解决了。我在try中得到的错误消息是“套接字挂起”,因为我使用Proxifier导致了这个错误,我可以关闭或排除Node.js进程来工作