Итак, я использую кукловода в nodeJS, и у меня есть функция, которая рекурсивно вызывает себя до тех пор, пока указанная страница не будет загружена правильно:
const isPageAccessible = async (page, url) => {
var pageRes = await page.goto(url, {
timeout: 10000
}).catch(e => console.log(e));
if (!pageRes || pageRes.status !== 200) {
console.log("Website didn't load properly.")
isPageAccessible(page, url);
} else {
console.log("Loaded!")
return true;
}
}
Проблема здесь в том, что эта функция возвращает неопределенное значение после первого рекурсивного вызова (насколько я знаю, это нормально, поскольку асинхронные функции должны разрешаться со значением). Я хочу, чтобы код ждал, пока эта функция не разрешится с true
console.log(await isPageAccessible(page,LOGIN_URL));
console.log("Done!")
Таким образом, консоль будет записывать «Готово!» после того, как сайт был успешно загружен. Прямо сейчас это журнал "Готово!" даже если веб-сайт не был загружен, так как isPageAccessible
функция возвращает неопределенное значение после первого вызова.
Любые мысли о том, как решить эту проблему, будут оценены!