Это работает, но я немного нервничаю по этому поводу, так как не уверен, что это просто взломать или переделать. Может кто-то, пожалуйста, дайте мне знать, если это взломать или переделать?Typcript - вызывает другой метод внутри .subscribe() хорошей или плохой практики?
Я сделал это таким образом, чтобы первый метод выполнялся полностью, прежде чем начинать второй метод.
Если это плохая практика, я уверен, что это лучший способ ее реализовать.
У меня есть один метод, который делает вызов метода HTTP GET, а затем в подписке связывает его и вызывает другой метод, который вызывает другую услугу с использованием этих данных.
private bind(): void {
this.Service.get(this.Id)
.catch(this.logger.log)
.subscribe(
(customers: PersonalInfo[]) => {
this.customers = customers;
this.bindContactInfo();
}
);
}
private bindContactInfo():void{
this.Service.getContactInfo(this.Id)
.catch(this.logger.log)
.subscribe(
(contactInfo: ContactInformation[]) => {
// stuff in here
}
);
}
Могут быть случаи, когда другие методы могут быть лучше (например, с использованием 'mergeMap'), но нет ничего плохого в вызове другого метода из' callcribe() 'callbacks. –
Я делаю это так, как вы делаете (почти). Возможно, я немного структурирую методы. Если у меня есть два отдельных HTTP-вызова, но нужно сначала получить информацию, я делаю это так, как вы делаете. Если методы не зависят друг от друга, но у меня есть третий метод, который я хочу вызвать после загрузки данных, я обычно делаю 'forkJoin', а затем вызываю третий метод. – John