There is a built-in option for that:
await page.goto('https://www.digg.com/', {"waitUntil" : "networkidle0"});
networkidle0– consider navigation to be finished when there are no more than 0 network connections for at least 500 ms
networkidle2– consider navigation to be finished when there are no more than 2 network connections for at least 500 ms.
Of course it won’t work if you’re working with endless-scrolling-single-page-applications like Twitter.
Puppeteer GitHub issue #1552 provides explanation for the motivation behind networkidle2.