The fourth is the same as the third except there's now two workers that are both working to empty the queue meaning there are two requests going at any time until the queue is empty and once the final request is complete, it triggers a deferred
The third is the same as the second except it's encapsulated into a "worker" which, like the second one, keeps doing the next thing in the queue until its empty then triggers a deferred