JSFiddle - React, Tailwind, and code Playground

JavaScript

function return_value(){x += 100;}

var delay = function(ms){ //x as second parameter for delay-functon
	var promise = new Promise(
  	function(resolve, reject){
  		setTimeout(
      	function(){
        	resolve("Finished! Return the value: x = "+(return_value(x)));
        	reject("Oww...");
       	}, ms,
        x //x as third parameter for setTimeout
      );
 	 	},
    x //x as second parameter for Promise
	);
  return promise;
}

var x = 100;

var f = function(){
  console.log("Start...");
  var status = delay(1000).then(function(status){console.log("Finish!", status);});
  
  	var interval = setInterval(
			function(){
				if( x  !== 100 ){
					document.body.innerHTML = "x = "+x+", надо вернуть его...<br>Тут было бы кстати 'return 2', чтобы вернуть x из двух функций, а не только из этой функции интервала. ";
					clearInterval(interval);
					return x; //тут было бы кстати "return 2", чтобы вернуть x из двух функций, а не только из этой. 
				}else{
        	//console.log("x", x);
        }
			},100
		);

}
f();