2016-10-07 7 views
1

Ich versuche, den "Take" -Operator in meinem Code (Lernen Rxjs) zu verwenden, aber es ist nicht die Top 5 wie ich will senden. Mein einfacher Code ist unten, jemand hat irgendeine Idee, wie man hilft?Rxjs und Winkel 2 und die Verwendung der "Take" -Operator

+0

warum nimm (5) und nimm nicht (1)? Versuchen Sie, die letzten 5 Ergebnisse oder die letzten 5 Contries im Array zu erhalten? – Meir

+0

Ich möchte die ersten 5 Länder in der Reihe nehmen. –

Antwort

0

Nach dem Lesen Ihres Kommentars, verstehe ich, dass Sie die ersten 5 Länder benötigen. Beachten Sie, dass Ihr Observable Arrays von Ländern und nicht von Ländern emittiert. Der Grund, warum Sie Observable.of anstelle von Observable.fr verwenden. So sollte die richtige Syntax sein:

this.countries = this.searchTerms.debounceTime(300).distinctUntilChanged().switchMap( 
     searchTerm => searchTerm ? this.countrySearchService.search(searchTerm) : observable.from<Country[]>([])) 
     .take(5); 

Wenn Sie eine Probe wollen, dass verschiedene Anwendungsfälle zeigen, haben einen Blick auf this jsbin.

+0

Hervorragend, Ihre Erklärung und Code-Schnipsel machten es einfach zu verstehen. Tausend Dank. –