JSFiddle - React, Tailwind, and code Playground

by Kenneth Kin Lum

HTML

<main></main>

CSS

main {
    font: 12px Consolas, Monaco, monospace;
    white-space: pre-wrap;
}

JavaScript

var deferred = $.Deferred(),
    promise = deferred.promise();

var timerID = setInterval(function () {

    var i = Math.round(Math.random() * 10000);

    if (i > 9000) {
        deferred.resolve(i);
        clearInterval(timerID);
    } else if (i < 1000) {
        deferred.reject();
        clearInterval(timerID);
    }

    $("main").append("Person B: I am thinking or not doing anything, at " + (new Date()).toLocaleTimeString() + "\n");

}, 1000);

promise.done(function (foo) {
    $("main").append("Person A: wow I just know that the promise was kept, with the data being " + foo + ", at " + (new Date()).toLocaleTimeString() + "\n");
});

promise.fail(function () {
    $("main").append("Person A: wow I just know that the promise was not kept, at " + (new Date()).toLocaleTimeString() + "\n");
});