JSFiddle - React, Tailwind, and code Playground

JavaScript

var values = [1, 2, 3, 4, 5];
var i = 0;

var next = function() {
  return Promise.resolve(values[i++]).then(function(value) {
    if (value === 3) return 3;
    return next();
  });
};

next().then(function(value) {
  console.log('final value is', value);
});