const myFunction = async() => {
try {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.google.com/');
const performanceTiming = JSON.parse(
await page.evaluate(() => JSON.stringify(window.performance.timing))
);
console.log(performanceTiming);
await browser.close();
} catch (error) {
console.log(`catch error`, error);
}
};
(async function() {
for (let i = 0; i < 2; i++) {
const result = await myFunction();
if (result) {
console.log(`it worked`);
} else {
console.log(`Did not work work for iteration #: ${i + 1}, trying again...`);
i--;
}
}
})();
myFunction
- асинхронная функция. Я называю это в IIFE (Выражение немедленного вызова функции). Внутри IIEF я ожидаю, что блок else будет выполняться, только если что-то пойдет не так. Но когда я запускаю это, я получаю консольное сообщение от myFunction
; это означает, что ничего не пошло не так, но иначе Бок выполняется, и я вхожу в бесконечный цикл. Что я делаю не так?