Угловой 2 http поймать наблюдаемую проблему

У меня есть пользовательский http-сервис, который переопределяет стандартный http-сервис angular 2. Этот сервис устанавливает пользовательские параметры по умолчанию и устанавливает загрузчик при запуске запроса и скрывает загрузчик при завершении запроса.

Я также хочу добавить, функциональность для перенаправления пользователя на страницу входа в случае, если с сервера получена Несанкционированная ошибка (401, 403). Например, ниже мой http метод

get(url: string, options?: RequestOptionsArgs): Observable<any> {
        this.setLoadingStatus();
        options = this.prepareOptions(options);
        let that = this;
        return super.get(url, options)
            .map(res => {
                this.clearLoadingStatus();
                return res.json();
            })
            .catch(function (err) {
                //redirects user to login and display alert
                that._gs.alertUnauthorized();
                return Observable.empty();
            });
    }

Но когда вы тестируете его в браузере, то есть делаете запрос на защищенную страницу, которая возвращает 401 в случае неавторизованного запроса, он перенаправляет на страницу входа в систему, но консоль отображает следующую ошибку:

GET http://localhost:49547/api/protected/ 401 (Unauthorized)
EXCEPTION: Observable_1.Observable.empty is not a function
ORIGINAL STACKTRACE:
TypeError: Observable_1.Observable.empty is not a function

Может кто-нибудь, пожалуйста, руководство?

1 ответ

Вам необходимо импортировать empty функция:

import 'rxjs/add/observable/empty'
Другие вопросы по тегам