Ich habe obeservables dieser Objekte:Angular 2 Rxjs: Tragen Sie verschiedene auf Objekte
{
id : "f3055770-6e66-4936-8e9a-732b53121549"
message:"Empty Notification for test ......"
navigationLink:"/fusion/home"
seen:false
sendedOn:"2016-12-02T15:19:44.856Z"
userId :null
}
Ich mag nicht duplizierten Objekt erhalten (basierend auf ids) und ich diese Methode verwenden, um es zu erreichen
notify(userID: string) {
return Observable.interval(5000)
.map(() => this.baseUrl + '/notification/GetUnseen?userId=' + userID)
.switchMap(url => {
return Observable.from(this.datatService.get(url));
})
.flatMap(response => Observable.from(response.json().slice()))
}
Wenn ich distinct (x => x.id) als letzten Operator hinzufügen, habe ich nur ein Objekt anstelle von Four irgendeine Hilfe?
UPDATE:
Ich nenne diese Methode in der oninit() Lebenszyklus meiner Komponente, so dass das Verfahren alle 5 Sekunden ausführen Benachrichtigung zu erhalten, verwende ich distict auf diese Weise:
notify(userID: string) {
return Observable.interval(5000)
.map(() => this.baseUrl + '/notification/GetUnseen?userId=' + userID)
.switchMap(url => {
return Observable.from(this.datatService.get(url));
})
.flatMap(response => Observable.from(response.json().slice()))
.distinct(x => x.id);
}
UPDATE 2
Serveur Rohantwort:
"[{"userId":null,"sendedOn":"2016-12-02T15:19:44.856Z","message":"Empty Notification for test ......","navigationLink":"/fusion/home","seen":false,"id":"f3055770-6e66-4936-8e9a-732b53121549"},{"userId":null,"sendedOn":"2016-12-02T15:19:45.146Z","message":"Empty Notification for test ......","navigationLink":"/fusion/home","seen":false,"id":"ce172122-11d9-4054-a3e4-594c8c910a7d"},{"userId":null,"sendedOn":"2016-12-02T15:19:45.146Z","message":"Empty Notification for test ......","navigationLink":"/fusion/home","seen":false,"id":"66e32c45-f544-4ce6-901c-e5ac64904954"},{"userId":null,"sendedOn":"2016-12-02T15:19:45.147Z","message":"Empty Notification for test ......","navigationLink":"/fusion/home","seen":false,"id":"4c2322cb-526c-490e-8a86-f1e9ced1c34f"}]"
Können Sie bitte den Kontext angeben: 1) Wie nennen Sie diese Methode? 2) Wo fügen Sie den "distinct" Operator hinzu? – Meir
Sind Sie sicher, dass diese vier Objekte nicht die gleiche ID haben? – martin
Aktualisiert, @martin yeah bin sicher, dass die IDs nicht die gleichen sind –