Путь RXJS 5-6 будет
this.myService.getProductById(id).pipe(
first()
).subscribe(product => this.product = product);
или
this.myService.getProductById(id).pipe(
take(1)
).subscribe(product => this.product = product);
, но этот ничего не делает и не нужен , поскольку HttpClient.get()
возвращаетПри самозавершении наблюдаемой, которая испускает один раз и завершает, обратный вызов подписки будет выполняться только один раз.Так что это совсем не меняет поведение.
Если вы предпочитаете, вы также можете
this.myService.getProductById(id).toPromise().then(product => this.product = product);
или
this.product = await this.myService.getProductById(id).toPromise();