I've been looking for a solution all over the web, but couldn't find anything that fits my user case. I'm using the MEAN stack (Angular 6) and I have a registration form. I'm looking for a way to execute multiple HTTP calls to the API and each one is dependent on the returned result from the previous one. I need something that looks like this:
firstPOSTCallToAPI('url', data).pipe(
result1 => secondPOSTCallToAPI('url', result1)
result2 => thirdPOSTCallToAPI('url', result2)
result3 => fourthPOSTCallToAPI('url', result3)
....
).subscribe(
success => { /* display success msg */ },
errorData => { /* display error msg */ }
);
What combination of RxJS operators do I need to use to achieve this? One possible solution would be to nest multiple subscriptions, but I want to avoid that and do it better with RxJS. Also need to think about error handling.
Try this , Angular provides feature to call multiple API at a time.
You will get data in
array
as in same sequence which you call API.Ex:
You can find more read
I have also given another answer. Please check this, it may also helps you.
For calls that depend on previous result you should use
concatMap
if your async method does not depend on return value of the precedent async call you can use
Let me show you how to here, assuming I have much of emails I want to deliver an email to sequentially:
I hope this helps.