JSFiddle - React, Tailwind, and code Playground

JavaScript

function doFirstThing(){ return Promise.resolve(1); }  
function doSecondThing(res){ return Promise.resolve(res + 1); }  
function doThirdThing(res){ return Promise.resolve(res + 2); }  
function lastThing(res){ alert("result: " + res); }

const tasks = [ doFirstThing, doSecondThing, doThirdThing, lastThing];

const chain = arr => 
  arr.reduce((acc, fn) => acc.then(fn), Promise.resolve());

chain(tasks);