I try to write simple web-scraper using puppeteer library.
When I get page by url via page.goto, I need to retry if it failed, i.e response code is >= 400.
My snippet:
'use strict';
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.setViewport({width: 1024, height: 768});
await page.setDefaultNavigationTimeout(0);
await page.goto('https://google.com');
await browser.close();
process.exit();
})();
I need to implement fail strategy to retry url if response.code is >= 400.
I need delay beetween attempts equal to retryNumber * 1000ms:
- 1000 ms for first attempt;
- 2000 ms for second attempt;
- 3000 ms for third attempt and so on.
Promise should be rejected if retryNumber exceeds maxRetryNumber.
Who knows how to implement this via code? Are there any ready to use packets or snippets to achieve the goal?