Вы можете сделать очень простую функцию, чтобы узнать, был ли завершен процесс браузера.
async function wasBrowserKilled(browser){
const procInfo = await browser.process();
return !!procInfo.signalCode; // null if browser is still running
}
Мы можем использовать это здесь,
const browserKilled = await wasBrowserKilled(global_browser);
if(global_browser === false || browserKilled)
Он проверит, убит ли браузер, в противном случае он заменит его.
Это всего лишь один из многих способов, предоставляемых API.
Это код, который я использовал для проверки этого, посмотрите, как изменится вывод, если я закомментирую секцию browser.close()
.
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
const page = await browser.newPage();
// comment out to keep browser open
await browser.close();
console.log({browserKilled: await wasBrowserKilled(browser)});
});
async function wasBrowserKilled(browser){
const procInfo = await browser.process();
return !!procInfo.signalCode;
}
Войти сюда,
➜ puppeteer-xvfb git:(direct-script) ✗ node temp/interval_tab.js
{ browserKilled: true }
➜ puppeteer-xvfb git:(direct-script) ✗ node temp/interval_tab.js
{ browserKilled: false }
_
Это отличается от события. Я специально сделал этот фрагмент, чтобы проверить процесс для этого конкретного вопроса, где вы проверяете и запускаете его, если хотите.
Обратите внимание, что это даст только результат, если браузер каким-то образом потерпит крах / закроется.