JSFiddle - React, Tailwind, and code Playground

by Damian Dulisz

JavaScript

function asyncFun (x) {
  return new Promise(res => {
  	setTimeout(() => res(x), 2000)
  })
}

function logAndIncrememntIfNeeded(x) {
	return asyncFun(x)
    .then(res => {
      console.log(1, res)
      return res
    })
    .then(res => {
      console.log(2, res + ', but is it?')
      if (res > 200) return 'OK'
      else return res
    })
    .then(res => {
    	if (res <= 200) logAndIncrememntIfNeeded(res + 100)
      else return res
    })
    .then(res => {
      console.log(3, res)
    })
}

logAndIncrememntIfNeeded(5)