Как отловить ошибки из fetch в эпосе, используя rxjs - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть функция getUser (), которая запрашивает конечную точку и возвращает объект пользователя или ошибку 401, если вызов не авторизован.Как я мог справиться с ошибкой в ​​эпосе?Я не должен использовать rxjs для создания HTTP-наблюдаемого для использования с fetch.AuthFetch - это просто оболочка над выборкой, которая устанавливает правильный заголовок для аутентификации.Моя функция getUser () выглядит следующим образом:

async getUser() {
    return authFetch(BASE_URL + '/user', {
        method: 'GET',
        headers: {
            'Content-Type': 'application/json',
        },
    })
        .then(handleErrors)
        .then(response => response.json())
        .catch(error => console.log(error));
}

function handleErrors(response) {
if (!response.ok) {
    throw new Error(response.status);
}
return response;

}

Мой вход в систему выглядит следующим образом:

export const login = (action$: AnyAction, state$: any) => action$.pipe(
withLatestFrom(state$),
flatMap(() => from(getUser())
    .pipe(
        tap((data) => console.log('tap: ', data)),
    )
),
catchError((err: any) => {
    console.log('Error: ', err);
    return empty();
})
);

Когда я подключаюсь к потоку, я либо получаюundefined или объект данных пользователя.Как я могу обработать эту ошибку, желательно с использованием возвращенного кода ошибки.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...