Hacky:
```js
            function getNext() {
              var task = tasks.shift();
              if (task) {
                return task().then(getNext);
              }
            }
            return getNext();
```