Получение ответа об ошибке API от CycleJS HTTPDriver

Я пробую CycleJS с помощью xstream и не могу найти способ как спасти ошибку (например, 422), так и получить ответ JSON от HTTP-драйвера.

Чтобы спасти от ошибки, я использую Xstream's replaceError который, кажется, работает так:

sources.HTTP
  .select('hello')
  .map((response$) =>
    // No response$.body or response$.error, just response$.request.
    response$.replaceError(() => xs.of(errorObject))
  ).flatten()

Однако API возвращает сообщение об ошибке, которое я хотел бы отобразить пользователю, и оно теряется, если его заменить объектом по умолчанию. Единственная собственность на response$ это установлено фактические данные запроса.

Версии:

"@cycle/dom": "^12.2.5"
"@cycle/http": "^11.0.1"
"@cycle/xstream-run": "^3.1.0"
"xstream": "^6.4.0"

Любые идеи приветствуются!

1 ответ

Решение

Попробуйте поймать объект ошибки err в аргументе в пользу replaceError (вы не использовали его):

response$.replaceError(err => /* use err here */)
Другие вопросы по тегам