Используйте один pipe
для вашей проблемы.Просто запятую разделяйте различные цепочечные операторы, такие как map
, switchMap
, mergeMap
, tap
и т. Д.
this.apiService.sendPutRequest('/api/users/activate', usrObj).pipe(
switchMap((results) => this.apiService.sendGetRequest('/api/users/' + this.currentUserId)),
tap((results) => this.setActiveUser(data)),
switchMap(() => this.apiService.sendGetRequest('api/tasks/user/' + this.currentUserId)),
tap((results) => this.taskService.setCurrentUserTasks(tasks))
);
Упрощенный: используйте map
, если вы просто хотите преобразовать значение без каких-либоasync api вызывает и передает его другому оператору или подписке, tap
, если вы просто хотите перехватывать значения между ними без преобразования (например, для регистрации).И switchMap
для отправки дополнительных вызовов API.