Promise

by bakhshi

JavaScript

'use strict';

function getPromise(fail) {
    return new Promise(function (resolver, rejecter) {
        setTimeout(() => {
            if (fail) rejecter({
                message: 'rejected'
            });
            else resolver({
                message: 'done ok!'
            });
        }, 1000);
    });
}

function processPromise(promise) {
    promise.then((data) => {
        console.log('resolved', data);
        data.processed = true;
        return data;
    }).
    catch ((err) => {
        console.log('rejected', err);
        return {
            message: 'recovered'
        };
    }).
    then((data) => {
        console.log('recovered', data);
    });
}

processPromise(getPromise(true));
processPromise(getPromise(false));