I have a very quirky api that can only handle a single request at a time.
Therefore, I need to ensure that every time a request is made, it goes into a queue, and that queue is executed one request at a time, until it is empty.
Normally, I just use jQuery’s built in queue, since the site is already using jQuery. However, I was not sure if I could somehow decorate the $http service, or wrap it in another service that returns one promise at a time, or something else.
Here is my solution for that: http://plnkr.co/edit/Tmjw0MCfSbBSgWRhFvcg
The idea is: each run of service add request to queue and return promise. When request to $http is finished resolve/refuse returned promise and execute next task from queue if any.
Looks quite simple 🙂