Unter Verwendung der ersten () - operator auf eine beobachtbare, um das erste element
Ich bin Art von neuen zu RxJS, In diesem plunk
Ich bin versucht, zurück das erste Element im array ist, habe ich versucht das first()
Betreiber, aber es gibt nichts:
var one = this.http.get(this.memberUrl)
.map( this.extractData )
.map(processArray => {
return processArray.filter(x=> x.type === "member")
//.first()
})
Whats falsch mit der auskommentierte Zeile in app/member.service.ts
?
InformationsquelleAutor Tunity | 2016-08-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
.map()
, das argument ist der Typ desObservable
.Da die, die Sie in Ihrem Dienst eine
Observable<Member[]>
, dannprocessArray
imist ein array - eine
Member[]
.So, dass
.filter()
Sie anrufenArray#filter()
nichtObservable#filter()
.Auf die gleiche Weise die
.first()
Sie anrufen würde, wäreArray#first()
nichtObservable#first()
.Seitsiehe plunker ).
Array
keinen.first()
array, es ergibt einen Laufzeitfehler (Weiter zu gehen, wenn Sie rufen stattdessen
.first()
amObservable
würden Sie nicht sehen, viel Unterschied, da es sich um eineObservable<Member[]>
, wäre es das erste element, dassObservable
ist die ganze array.Lösungen:
Wenn Sie wirklich wollen, dass es weiterhin einsiehe plunker ):
Observable<Member[]>
und abrufen nur das erste Mitglied, das Sie tun konnte, (Aber, was ich beraten Sie zu tun ist, um die beobachtbare in eine
Observable<Member>
(stattObservable<Member[]>
). Sie können tun, dass mit.mergeMap()/.flatMap()
.app/Mitglied.service.ts -
app/member-Liste.Komponente.ts -
Sehen final demo plunker hier.
InformationsquelleAutor acdcjunior
War ich in der Lage, den Zugriff auf die Beobachtbaren erste Mitglied durch die Verwendung von angular - async-Leitung.
ypurComponent.html
InformationsquelleAutor Ankit Rathore