обработчик ошибок события кукловода не перехватывает блокировку - PullRequest
0 голосов
/ 26 февраля 2019

Я создаю веб-проверку с использованием кукловода (nodejs), в какой-то определенной части веб-проверки я слушаю событие, которое запускается, когда браузер запускает диалоговое окно с сообщением.когда запускается это событие, я выкидываю исключение, но это исключение делает выход из основного процесса и не перехватывает (err)

Пример:

let page = null

const login = async () => {
  //Event listening
  page.on('dialog', async dialog => {
    throw new Error('login_error')
  }

async function processWebScraping () {
  try{   
     page = // Initialize puppeteer page
     await login() 
     [...]
  } catch(e){
     // the Error doen't come here, i got an uncaughtException 
     console.log(e) 
  }

кто-то знаеткак я могу получить эту ошибку и обработать ее?

1 Ответ

0 голосов
/ 26 февраля 2019

Попробуйте вместо этого обернуть слушателя в Promise.Это позволит вызвать .then() для ее разрешения и .catch() для обнаружения ошибки.В вашем примере это будет выглядеть так

const login = () => new Promise((resolve, reject) => {
  page.on('dialog', dialog => {
    reject(new Error('login_error'));
  });
});

function processWebScraping() {
  // page initialization

  login().then(() => {
    console.log('No error here');
  }).catch(err => {
    // Handle the error
    console.error(err);
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...