JSFiddle - React, Tailwind, and code Playground

HTML

Console.log(F12 button)

JavaScript

var x = 1;				//это x, значение по умолчанию - 1, его следует обновить в будущем, и вернуть новое x.
var delay = 1000;		//задержка в миллисекундах...


function sleepFor( sleepDuration ){	//функция для того, чтобы спать. Пока она исполняется - весь скрипт стопорится, блядь.
    var now = new Date().getTime();
    while(new Date().getTime() < now + sleepDuration){} //Делать грандиознейшее - нихуя. В этом месте нихуя - многогранно зацикливается, оттого и ступор.
}

function update_x(){	//функция призвана - обновить существующий x
	console.log("Медленная функция, здесь, просто спит - 5 сек...");
	sleepFor(5000);
	x += 1;				//увиличить его значение на 1
	console.log("Медленная функция, внезапно - проснулась, обновила x (x = "+x+"), и возвращает его.");	
	return x;			//и вернуть его.
}

function func(){					//Это - обычная, не асинхронная функция. Она должна обновить x, после выполнения медленной функции и вернуть его.

	async function f(delay) {		//Эта асинхрнная функция - она ждёт выполнения медленной функции, и возвращает "новый x", как значение в Promise.
		let promise = new Promise(
			(resolve, reject) =>
				{
					setTimeout(() => resolve( ( update_x() ) ), delay)	//это медленная функция. Она может исполняться - годами. Призвана вернуть новый x с задержкой delay.
				}
			);
		return await promise;	// асинхронная функция будет ждать "новый x" пока promise не будет "resolved", и ВЕРНЁТ ЕГО, этот x, из функции - аж только потом;
	}

	console.log("start... x = ", x); //Перед запуском - показать изначальный x...

	//Ждать выполнения медленной функции, вызываемой из f и показать "новый x"...
	(async () => {return (console.log("Promise was been resolved! old x =", x, ", new x =", await f(delay)));})()	//	а вот так - работает и в скрипте и в консоли.
	
	setTimeout(
		function(){
			console.log("now x = ", x);	//ну и желательно бы - показать обновленный x
		}
		,
		2*delay							//уже после всего этого...
	);

	//но это ещё не всё. Теперь же надо его вернуть, этот...