Обработка ошибок с реагированием SSR renderToNodeStream - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь выяснить, как правильно обрабатывать ошибки реагирующих потоков. Допустим, есть ошибка внутри <App />. Каков наилучший способ отловить ошибку? Кажется, что блок catch не перехватывает ошибку, так как он ничего не записывает в console.log, когда я выкидываю ошибку в компоненте <App />. Я пытался добавить stream.on('error', (err) => {console.log(err)});, и это тоже не ловит ошибку. Как мне отловить ошибку в приложении на стороне сервера?

try {
  const header = <div>Hello</div>
  const footer = <div>Bye</div>
  const sheet = new ServerStyleSheet();
  const jsx = sheet.collectStyles(<App />);
  const stream = sheet.interleaveWithNodeStream(renderToNodeStream(jsx));
  ctx.body = multi_stream([
    string_stream(header),
    stream,
    string_stream(footer)
  ]);
} catch (err) {
  console.log('There is an error', err);
  ctx.throw(err.status, 'Failed to SSR');
}
...