Too Long; Didn't Read
JavaScript promise chaining is a simple but powerful feature to resolve a common nested callback issue (callback hell). To chain promises, there are two main points you need to remember.
Multiple then and catch can be called successively such as promise.then(...).then(...).catch(...).catch(...).
A call back in the then method must return a new Promise object so the chain can be continued.
The rule also applies to TypeScript. In ES2016 (a.k.a ES7), the async/await function was introduced and it makes our life even easier. That said, if you cannot use the ES7 feature for some reason, then promise chaining is a great choice to refactor your codebase.