На странице документации Angular 2 для использования службы Http есть пример.
getHeroes (): Observable<Stuff[]> {
return this.http.get(this.url)
.map(this.extractData)
.catch(this.handleError);
}
Я клонировал проект angular2-webpack-starter и сам добавил приведенный выше код.
Я импортировал, Observable
используя
import {Observable} from 'rxjs/Observable';
Я предполагаю, что свойства Observable
также импортированы ( .map
работает). Посмотрел журнал изменений для rxjs.beta-6 и ничего не упомянул catch
.
javascript
angular
typescript
rxjs
BrianRT
источник
источник
import {Observable} from 'rxjs/Observable';
? Мне это кажется более интуитивным.rxjs/Observable
Модуль не импортирует оператор , потому что есть много операторов. Вrxjs/Rx
импорте модуля все ... Я думаю , что это выбор дизайна.В RxJS 5.5+
catch
оператор устарел. Теперь вы должны использоватьcatchError
оператор вместе сpipe
.Для каждого импортируемого оператора RxJS, в том числе
catchError
теперь вы должны импортировать из «rxjs / operator» и использовать оператор конвейера.Пример обнаружения ошибки для Http-запроса Observable
Обратите внимание, что здесь
catch
он заменен на,catchError
аpipe
оператор используется для составления операторов аналогично тому, как вы привыкли с цепочкой точек.См. Документацию rxjs по операторам pipable (ранее известным как lettable ) для получения дополнительной информации.
источник
map(res => res)
требуется?pipe
функция RxJS позволяет объединить несколько функций в одну. Функция pipe () принимает в качестве аргументов функции, которые вы хотите объединить, и возвращает новую функцию, которая при выполнении последовательно запускает составленные функции. Это отображение ничего не делает, поскольку технически это функция идентификации.источник