page.goto(puppeteer)在打开要导航到的相同URL时不会停止自行调用

问题描述 投票:0回答:1

我正在尝试通过使用puppeteer将html网页转换为pdf文件。它正在将html网页转换为pdf文件,但问题是page.goto在完成其工作后没有停止。发生这种情况时,我从中运行该localhost服务器的终端变得有点无响应。我也将其部署在heroku上,但是当我访问该URL时,服务器会以错误代码503响应我,并且该服务器未将其转换为pdf。

let printPDF = async () => {
  try {
    const browser = await puppeteer.launch({ headless: true});
    const page = await browser.newPage();
    await page.goto('http://localhost:3000/preview')
    await page.pdf({ format: 'A4' , path: `${__dirname}/contact.pdf`, printBackground: true});

    await page.close();
    await browser.close();
    console.log("repeat") //logging to see its repetition
  }

  catch (error) {
    await page.close();
    await browser.close();
  }
}

getReviewPage = ((req, res) => {
    printPDF()
    res.sendFile(`${__dirname}/form.html`)
})

app.route('/preview').get(getReviewPage);
express puppeteer html-to-pdf
1个回答
0
投票

由于printPDF是一个返回Promise的异步函数,因此您需要等待它完成,例如then

const getReviewPage = (req, res) => {
  printPDF().then(() => res.sendFile(`${__dirname}/form.html`)
}
© www.soinside.com 2019 - 2024. All rights reserved.