JSFiddle - React, Tailwind, and code Playground

by Alexey Ukolov

JavaScript

// Запускаем цепочку последовательных функций
one().then(two, onOneError).then(three, onTwoError);

function one() {
    var dfd = new $.Deferred();

    setTimeout(function () {
        console.log('one');
        
        if (Math.round(Math.random() * 10) >= 5)
        {
        	dfd.resolve();
        }
        else
        {
            dfd.reject();
        }
    }, 1000);

    return dfd.promise();
}

function two() {
    var dfd = new $.Deferred();

    setTimeout(function () {
        console.log('two');
        
        if (Math.round(Math.random() * 10) >= 5)
        {
        	dfd.resolve();
        }
        else
        {
            dfd.reject();
        }
    }, 1000);

    return dfd.promise();
}

function three() {
    setTimeout(function () {
        console.log('three');
    }, 1000);
}

function onTwoError() {
    console.log('twoError', arguments);
}

function onOneError() {
    console.log('oneError', arguments);
}