Any suggestions, how this can be rewritten in more promise-chaining style?:
this.apiService.sendPutRequest(\'/api/users/activate\', usrObj).pipe(
map
Use a single pipe
for your problem. Just comma seperate different chainable operators like map
, switchMap
, mergeMap
, tap
, etc.
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))
);
Simplified: Use map
if you just want to transform a value without any async api calls and pass it to another operator or a subscription, tap
if you just want to catch values in between without transforming (e.g. for logging). And switchMap
for dispatching additional api calls.