, promises, , , :
a().then(b).then(c).catch(failure);
, , .then , , promises. . b / c , promises, , a , TypeError.
, , , a, , , , a (, ),
Promise.resolve(a()).then(b).then(c).catch(failure);
a, b c :
Promise.reject .
, , , . .
[a, b, c].reduce((p, f) => p.then(f), Promise.resolve()).catch(failure);