2017-10-11 5 views
-1

Ich bin kein Rxjs-Experte.Switchmap bei gleicher Funktion

Ich habe eine Methode, die tatsächlich speichert.

Aber es gibt zwei andere verschiedene Arten von Elementen, die dieselbe Methode zum Speichern verwenden müssen, nur der Parameter ist unterschiedlich.

this.saveProducts(this.containers, 'CONTAINER') 

In meiner Komponente habe ich einige andere unabhängige speichern passiert und all diese sollten eins nach dem anderen passieren.

So sieht meine Methode so aus.

return this.service.edit(materials) 
     .do((data) => { 
      this.materials= data; 
     }) 
     .switchMap(() => this.customerService.addCustomer(this.id, this.customers)) 
     .switchMap(() => this.saveProducts(this.boxes, 'BOXES')) 
     .switchMap(() => this.saveProducts(this.containers, 'CONTAINER')) 
     .switchMap(() => this.saveProducts(this.books, 'BOOKS')) 
     .do(() => { 
     ....... 
      } 

Aber was ist passiert es nie die zweite saveProducts Methode aufruft, wenn ich eine Rückkehr von ersten

private saveProducts(products: IProduct[], type: 
Type): Observable<any> { 
     console.log(type); 
    } 

Antwort

0

Vielen Dank für jeden, der es sah .. Die Antwort auf diese Frage ist zu gib ein leeres Observable zurück, wenn nichts zu retten ist.

if (products$.length === 0) { 
     return Observable.of([]); 
    } 

Danke Jungs .. Happy Codierung ..

Verwandte Themen