Pada halaman dokumentasi 2 sudut untuk menggunakan layanan Http, ada contoh.
getHeroes (): Observable<Stuff[]> {
return this.http.get(this.url)
.map(this.extractData)
.catch(this.handleError);
}
Saya mengkloning proyek angular2-webpack-starter dan menambahkan kode di atas sendiri.
Saya mengimpor Observable
menggunakan
import {Observable} from 'rxjs/Observable';
Saya mengasumsikan properti Observable
juga diimpor ( .map
berfungsi). Melihat changelog untuk rxjs.beta-6 dan tidak ada yang disebutkan tentang catch
.
javascript
angular
typescript
rxjs
BrianRT
sumber
sumber
import {Observable} from 'rxjs/Observable';
? Itu tampak lebih intuitif bagi saya.rxjs/Observable
modul tidak mengimpor operator karena ada banyak operator. Therxjs/Rx
impor modul semua ... Saya berpikir bahwa itu adalah pilihan desain.Dengan RxJS 5.5+,
catch
operator sekarang tidak digunakan lagi. Anda sekarang harus menggunakancatchError
operator bersamaan denganpipe
.Untuk setiap Operator RxJS yang Anda impor, termasuk
catchError
sekarang Anda harus mengimpor dari 'rxjs / operator' dan menggunakan operator pipa.Contoh kesalahan penangkapan untuk permintaan Http Diamati
Perhatikan di sini bahwa
catch
diganti dengancatchError
danpipe
operator digunakan untuk menyusun operator dengan cara yang sama dengan apa yang Anda gunakan dengan dot-chaining.Lihat dokumentasi rxjs pada operator pipable (sebelumnya dikenal sebagai lABLE ) untuk info lebih lanjut.
sumber
map(res => res)
diperlukan?pipe
fungsi RxJS memungkinkan Anda menggabungkan beberapa fungsi menjadi satu fungsi. Fungsi pipe () mengambil sebagai argumennya fungsi yang ingin Anda gabungkan, dan mengembalikan fungsi baru yang, ketika dieksekusi, menjalankan fungsi yang dikomposisikan secara berurutan. Pemetaan itu tidak melakukan apa-apa, karena secara teknis merupakan fungsi identitas.sumber