导航超时与puppeteer不一致

我正在使用async / await来运行10个并行的无头Chrome浏览器和puppeteer库,但是我一直使用这个代码来获得不一致的超时。 有时候,所有10个网页都可以正常工作,其他时间我会在30秒之后得到其中的7个。

const puppeteer = require('puppeteer') async function test() { const browser = await puppeteer.launch();//{headless: false} var sites = ['http://bbcnews.com','http://yahoo.com','http://cnn.com','http://quora.com','http://imgur.com','http://youtube.com','http://azure.com','http://kayak.com','http://medium.com','http://reddit.com']; var requests = []; for (let site of sites) { requests.push(run(browser, site)) } results = await Promise.all(requests); } async function run(browser, site) { try { var page = await browser.newPage(); //await page.setUserAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5") //console.log(site); await page.goto(site, { /*networkIdleTimeout: 5000, waitUntil: 'networkidle', timeout: 30000*/ }); //var screenshot = await page.screenshot(); await page.close(); console.log('done' + site) } catch (err) { console.log(err) return null; } } test().catch(console.error.bind(console)) 

首先抱歉,因为也许这不是解决scheme,但我需要更多的声誉,而不是一个答案作出评论。

我也将一个函数推到一个数组,但我标记为await所以试试这个:

 for (let site of sites) { requests.push(await run(browser, site)) } 

 await test().catch(console.error.bind(console))