Promise Chaining

by Jason Butz

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.4.6/bluebird.min.js"></script>

JavaScript

var output = function(text) {
	var body = document.querySelector('body');
    var p = document.createElement('p');
    p.innerText = text;
    body.appendChild(p);
}

Promise.resolve()
	.then(() => {
    	output('Step 1');
        
        return Promise.resolve()
    })
	.then(() => {
    	output('Step 2');
        
		throw new Error('Error Message')
    })
    .then(() => {
    	output('Never Hit 1');
        
        return Promise.resolve()
    })
    .catch((err) => {
    	output(`Step 3 - ${err.message}`);
        
        return Promise.resolve();
    })
    .then(() => {
    	output('Step 4');
        
        return Promise.resolve()
    })
    .catch((err) => {
    	output(`Never Hit 2 - ${err.message}`);
        
        return Promise.resolve();
    })