, Promise, ?
var workQueue = [work, goes, here];
var currentItem = workQueue.shift();
return performWorkWith(currentItem)
.then(handleResponseWithQueue(workQueue));
function handleResponseWithQueue(queue) {
return function handleResponse(response) {
if (response.ok && queue.length > 0)
return performWorkWith(queue.shift()).then(handleResponseWithQueue(queue));
};
}
():
function series(work, queue) {
if (queue.length <= 0) return;
work(queue.shift()).then(function() {
if (queue.length > 0) return series(work, queue);
});
}