ceci est mon code de classe tsBehaviorSubject de switchMap alors getValue n'est pas une erreur de fonction
this.product$ = <BehaviorSubject<Product>>this.route.params.switchMap(
(params): BehaviorSubject<Product> =>
this.productService.getProduct(params['_id'])
);
ce code est du service
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;
}
Je déclare le type et le type rejetterai, mais pourtant, quand Je vous écris
console.log(product$.getValue)
Je reçois cette erreur:
erreur TypeError: this.product $ .getValue est pas une fonction
grâce
pourriez-vous s'il vous plaît me dire la bonne façon de faire cela? –
Vous ne pouvez pas faire ce que vous semblez vouloir faire dans l'extrait. Et le code dans votre question est tout ce qu'il y a à faire. En extrapolant à partir du code, il semble que vous essayez d'accéder à quelque chose de manière synchrone et ce n'est pas possible. – cartant
c'est correct, j'essaie d'obtenir une valeur synchrone, et c'est possible avec BehaviorSubject, mon seul problème est que je ne pouvais pas retourner BehavorSubject à partir de swichmap. Je veux échapper au code imbriqué en m'abonnant et profiter de l'élégance de switchmap. –