JSFiddle - React, Tailwind, and code Playground

JavaScript

Promise.prototype.thenReturn = function(value) {
    return this.then(function() {
        return value; 
    });
};

function readFile(index) {
    return new Promise(function(resolve) {
        setTimeout(function() {
            console.log("Read file number " + (index +1));
            resolve();
        }, 500);
    });
}
// The loop initialization
var len = 10;
Promise.resolve(0).then(function loop(i) {
    // The loop check
    if (i < len) {              // The post iteration increment
        return readFile(i).thenReturn(i + 1).then(loop);
    }
}).then(function() {
    console.log("done");
}).catch(function(e) {
    console.log("error", e);
});