Auf der Angular 2-Dokumentationsseite zur Verwendung des HTTP-Dienstes finden Sie ein Beispiel.
getHeroes (): Observable<Stuff[]> {
return this.http.get(this.url)
.map(this.extractData)
.catch(this.handleError);
}
Ich habe das Angular2-Webpack-Starter- Projekt geklont und den obigen Code selbst hinzugefügt.
Ich importierte Observable
Verwendung
import {Observable} from 'rxjs/Observable';
Ich gehe davon aus, dass die Eigenschaften Observable
auch importiert werden ( .map
funktioniert). Ich habe mir das Changelog für rxjs.beta-6 angesehen und nichts wird darüber erwähnt catch
.
javascript
angular
typescript
rxjs
BrianRT
quelle
quelle
import {Observable} from 'rxjs/Observable';
? Das erscheint mir intuitiver.rxjs/Observable
Modul importiert keine Operatoren, da es viele Operatoren gibt. Dasrxjs/Rx
Modul importiert alles ... Ich denke, dass es eine Design-Wahl ist.Mit RxJS 5.5+ ist der
catch
Bediener jetzt veraltet. Sie sollten jetzt dencatchError
Operator in Verbindung mit verwendenpipe
.Für jeden RxJS-Operator, den Sie importieren,
catchError
sollten Sie jetzt aus 'rxjs / operator' importieren und den Pipe-Operator verwenden.Beispiel für einen abfangenden Fehler für eine HTTP-Anforderung Observable
Beachten Sie hier, dass
catch
durch ersetzt wirdcatchError
und derpipe
Operator verwendet wird, um die Operatoren auf ähnliche Weise zusammenzusetzen, wie Sie es bei der Punktverkettung gewohnt sind.Weitere Informationen finden Sie in der rxjs-Dokumentation zu pipable- Betreibern (früher als vermietbar bezeichnet ).
quelle
map(res => res)
erforderlich?pipe
Funktion können Sie mehrere Funktionen zu einer einzigen Funktion kombinieren. Die Funktion pipe () verwendet als Argumente die Funktionen, die Sie kombinieren möchten, und gibt eine neue Funktion zurück, die bei Ausführung die zusammengesetzten Funktionen nacheinander ausführt. Diese Zuordnung bewirkt nichts, da es sich technisch gesehen um eine Identitätsfunktion handelt.quelle