JSFiddle - React, Tailwind, and code Playground

by Daniel Latimer

HTML

<script src="http://rsvpjs-builds.s3.amazonaws.com/rsvp-latest.js"></script>
<button id="success">Success</button>
<button id="failure">Failure</button>

JavaScript

doSomething()  // returns an RSVP.Promise object (see function below)
    .then(
        function(message) { console.log("then success 1: " + message); return "from success 1"; },
        function(message) { console.log("then failure 1: " + message); throw "from failure 1"; }
    )
    .then(
        function(message) { console.log("then success 2: " + message); return "from success 2"; },
        function(message) { console.log("then failure 2: " + message); throw "from failure 2"; }
    )
    .then(
        function(message) { console.log("then success 3: " + message); return "from success 3"; }
    )
    .then(
        null,
        function(message) { console.log("then failure 4: " + message); throw "from failure 4"; }
    )
    .then(
        function(message) { console.log("then success 5: " + message); return "from success 5"; },
        function(message) { console.log("then failure 5: " + message); return "from failure 5"; }
    ).catch(
        function(message) { console.log("then success 6: " + message); return "catch!"; }
    ).then(
        function(message) { console.log("then success 7: " + message); return "from success 5"; },
        function(message) { console.log("then failure 7: " + message); return "from failure 5"; }
    );


//================================================================================


function doSomething() {
    return new RSVP.Promise(function (fulfill, reject) {
        document.getElementById("success").addEventListener("click", function () {
            fulfill("Promise fulfilled!");
        });

        document.getElementById("failure").addEventListener("click", function () {
            reject("Promise rejected!");
        });
    });
}