Вы должны реструктурировать свой пример Promise Chaining, чтобы использовать метод then()
перед методом catch()
.
Рассмотрите следующий пример, используя page.waitForSelector()
:
// Correct Method
await page.waitForSelector('#example').then(() => {
console.log('SUCCESS');
}).catch(e => {
console.log('FAIL');
});
Если элемент не существует, то FAIL
будет зарегистрирован на консоли.В противном случае, если элемент существует, результат будет SUCCESS
.
С другой стороны, взгляните на приведенный ниже пример, в котором then()
и catch()
в обратном порядке:
// Incorrect Method
await page.waitForSelector('#example').catch(e => {
console.log('FAIL');
}).then(() => {
console.log('SUCCESS - not necessarily');
});
Если элемент не существует, FAIL
будет зарегистрирован в консоли, но независимо от того, существует элемент или нет, SUCCESS
также будетзаписываться в консольЭто связано с тем, что регистрация SUCCESS
является следующим непосредственным шагом в цепочке после попытки отловить ошибку.
Использование then()
до catch()
позволитраспечатать одно из двух сообщений и достичь желаемого результата.