Console.log 退出前的页面内容
Console.log page content before exit
有时我的人偶程序会因为未处理的承诺而永远挂起,所以我想我用关闭它的 setTimeout 启动程序。
var page;
var content;
const maxExecTime = 1000*60*5; // 5 min
setTimeout(function(){
content = page.content();
console.log('TIMEOUT');
console.log(content);
process.exit()
}, maxExecTime);
(async () => {
const browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('URL');
...
await browser.close();
})();
我的目标是console.log程序关闭前页面的最后一个内容,但是setTimeout在async函数之外所以我不能使用await,我得到:
Promise { <pending> }
我怎样才能实现我的目标?谢谢
你忘了等待超时函数,每个函数都需要它自己的 async 关键字。
var page;
var content;
const maxExecTime = 1000*60*5; // 5 min
setTimeout(await function(){
content = await page.content();
console.log('TIMEOUT');
console.log(content);
process.exit()
}, maxExecTime);
(async () => {
const browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('URL');
...
await browser.close();
})();
有时我的人偶程序会因为未处理的承诺而永远挂起,所以我想我用关闭它的 setTimeout 启动程序。
var page;
var content;
const maxExecTime = 1000*60*5; // 5 min
setTimeout(function(){
content = page.content();
console.log('TIMEOUT');
console.log(content);
process.exit()
}, maxExecTime);
(async () => {
const browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('URL');
...
await browser.close();
})();
我的目标是console.log程序关闭前页面的最后一个内容,但是setTimeout在async函数之外所以我不能使用await,我得到:
Promise { <pending> }
我怎样才能实现我的目标?谢谢
你忘了等待超时函数,每个函数都需要它自己的 async 关键字。
var page;
var content;
const maxExecTime = 1000*60*5; // 5 min
setTimeout(await function(){
content = await page.content();
console.log('TIMEOUT');
console.log(content);
process.exit()
}, maxExecTime);
(async () => {
const browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('URL');
...
await browser.close();
})();