JSFiddle - React, Tailwind, and code Playground

JavaScript

function If(condition) {
  condition = Boolean(condition);

  var promise = Promise[condition ? 'resolve' : 'reject'](condition),
      done = false;

  var pseudo = {
    then: function(res) {
      promise.then(res);
      return pseudo;
    },

    ElseIf: function(newCondition) {
      if (done)
        throw new Error('this condition are closen by Else()');

      if (condition)
        return pseudo;

      return If(!condition && newCondition); // предыдущее условие должно быть false
    },

    Else: function() {
      if (done)
        throw new Error('this condition are closen by Else()');

      done = true;

      pseudo.then = function(rej) {
        promise.catch(rej);
        return pseudo;
      };

      return pseudo;
    }
  };

  return pseudo;
};

var i = 7;
If(i == 0) // If - начинающая конструкция
  .then(alert.bind(null, 0))
.ElseIf(i == 1) // ElseIf может быть сколько угодно..
  .then(alert.bind(null, 1))
.ElseIf(i == 2) // .. действительно много..
  .then(alert.bind(null, 2))
.ElseIf(i == 3) // .. и даже больше!
  .then(alert.bind(null, 3))
.Else() // Else - только одна и только последняя!
  .then(alert.bind(null, 'i > 3'))
.Else() // будет ошибка
  .then(alert.bind(null, 'не сработает'))