diese ts Code meiner Klasse istBehaviorSubject von switchMap dann ist getValue kein Funktionsfehler
this.product$ = <BehaviorSubject<Product>>this.route.params.switchMap(
(params): BehaviorSubject<Product> =>
this.productService.getProduct(params['_id'])
);
dies Code aus dem Dienst
getProduct(_id: string): BehaviorSubject<Product> {
const bs = new BehaviorSubject<Product>
(ProductService.initializeProduct());
if (_id !== '0') {
this.productSub = this.databaseService.getProduct(_id).subscribe(
product => {
bs.next(product);
}
);
}
return bs;
}
Ich erkläre Typ, und auch gegossen Art, aber doch, wenn ich schreibe
console.log(product$.getValue)
ich diesen Fehler:
ERROR Typeerror: this.product $ .getValue ist keine Funktion
dank
Würden Sie mir bitte den richtigen Weg sagen, dies zu tun? –
10 Sie können nicht tun, was Sie im Snippet tun möchten. Und der Code in Ihrer Frage ist alles, was Sie tun können. Extrapoliert man aus dem Code, sieht es so aus, als würde man versuchen, synchron auf etwas zuzugreifen, was nicht möglich ist. – cartant
das ist korrekt, ich versuche, Wert synchron zu bekommen, und das ist mit BehaviorSubject möglich, mein einziges Problem ist, dass ich BehavorSubject von swichmap nicht zurückgeben konnte. Ich möchte den verschachtelten Code in subscribe verlassen und die Eleganz der Switchmap genießen. –