Я использую «официальный» скрипт Puppeteer для создания PDF-файла с веб-страницы на windows. Когда выходной файл уже открыт в моем средстве просмотра PDF, сценарий зависает после сообщения об ошибке.
Как мне сделать это, чтобы выйти в оболочку? Я знаю, что могу просто закрыть файл вручную, но для меня важно, чтобы скрипт не зависал по какой-либо причине (могут быть другие ошибки).
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});
await page.pdf({path: 'hn.pdf', format: 'A4'});
await browser.close();
})();
Результат:
(node:13884) UnhandledPromiseRejectionWarning: Error: EBUSY: resource busy or locked, open 'E:\puppeteer\hn.pdf'
-- ASYNC --
at Page.<anonymous> (E:\puppeteer\node_modules\puppeteer\lib\helper.js:111:15)
at E:\puppeteer\hn.js:7:14
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:13884) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:13884) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
... и я не вернусь к подсказке, пока не нажму CTRL + C.