Myslím, že to, čo hľadáš, sú promisy. V tomto prípade by to mohlo vyzerať napr. takto:
Promise.resolve(a())
.then(b)
.then(c)
.then(d)
.then(e);
Prípadne príklad so sekundovými odostupmi volaní s použitím zápisu lambda funkcie pomocou šípky (ES6):var delay = t => new Promise(resolve => setTimeout(resolve, t));
Promise.resolve(a())
.then(x => delay(1000))
.then(x => b())
.then(x => delay(1000))
.then(x => c())
.then(x => delay(1000))
.then(x => d())
.then(x => delay(1000))
.then(x => e());
Ak chceš použiť funkcionalitu z ES6 v starších prehliadačoch, môžeš použiť kompilátor ako napr. Babel alebo TypeScript. Pre prehliadače, ktoré neimplementujú Promise, môžeš použiť knižnicu, napr. bluebird.