Нахождение источника необработанного обещания в NodeJS / Vue SSR - PullRequest
0 голосов
/ 27 октября 2019

У меня есть Vue SPA, и я использую плагин Vue SSR для доставки мета-тегов Open Graph в Facebook, Twitter и другие сканеры / боты социальных сетей (потому что те не могут запускать Javascript).

Несколько дней назад код SSR начал давать сбой, сказав, что есть необработанное обещание.

Я добавил следующий код в мою реализацию SSR (которая выполняется с Node):

process.on('unhandledRejection', (reason, p) => {
  console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
});

Это дало мне следующий вывод:

Unhandled Rejection at: Promise Promise {
  <rejected> [NavigationDuplicated] {
    _name: 'NavigationDuplicated',
    name: 'NavigationDuplicated'
  }
} reason: [NavigationDuplicated] {
  _name: 'NavigationDuplicated',
  name: 'NavigationDuplicated'
}

Если я правильно понял вывод, что-то в коде Vue дважды вызывает route.push() с одним и тем же URL и вызывает ошибку NavigationDuplicated. В любом случае, я понятия не имею, какая из тысяч route.push в коде является ответственной за это.

Есть ли какой-нибудь способ, которым я могу получить более подробную обратную трассировку или каким-либо другим способом найтиточная строка кода, которая вызывает эту ошибку?

...