Using RSVP for multiple ajax promises

So i was working on a bug in my project the other day wherein the requirement so we had to make multiple ajax calls to our backend and then once when “all were done” we had to trigger the success callback, even if any one of the calls fails we do not trigger the success callback. And the asynchronus nature of the the ajax calls make it more difficult.

So to solve this problem we had a count variable with a promise, with every callback we were incrementing the callback and then when the count was equal to the number of calls then we would resolve the deffered object which would fire the success callback. This approach worked but was difficult to understand and debug.

To simplify this a bit we used the RSVP which was bundled with the ember source. so instead of maintaining the count and then manually resolving the promise we used the Ember.RSVP.all(<array to observe>, function(){ console.log(“success callback”)})
so it resolves the success callback once all the promises which are present in the array are resolved. So it makes it simple for someone to comprehend the solution. Though we could have written a similar thing , but why solve a problem which has already been solved before ;-)

you can read about the Ember.RSVP at Class packages/rsvp/lib/main.js:950


Popular Posts