JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<ul id="log"></ul>

JavaScript

Promise.resolve()
	.then(function() {
		return step(1)
			.then(null, function() {
				stepError(1);
			});
	})
	.then(function() {
		return step(2)
			.then(null, function() {
				stepError(2);
			});
	})
	.then(function() {
		return step(3)
			.then(null, function() {
				stepError(3);
			});
	});

var $log = $('#log');

function step(n) {
	$log.append('<li>Step '+n+'</li>');
	return (n === 2) ? Promise.reject(n) : Promise.resolve(n);
}

function stepError(n) {
	$log.append('<li>Error '+n+'</li>');
	return Promise.reject(n);
}