JS как правильно в промисе использовать функции

затертый до дыр вопрос выполнить одну функцию после другой. Очевидный путь - промис, однако вызов функции такого вида func(arg)() не работает.

let myPromise = new Promise
(
	(resolve, reject) => 
	{
		firstFunction(param)();
	  	resolve();
	}
);
myPromise.then(secondFunction(param)());

Но, secondFunction не ждёт выполнение первой.

Если поставить таймаут, то всё ОК:

firstFunction(param)();
setTimeout(secondFunction(param)(), 2000);

обе функции возвращают анонимную:

function firstFunction(param)
{
	return () =>
	{
             ...
	}
}


Ответы (1 шт):

Автор решения: Igor
myPromise.then(secondFunction(param));

let myPromise = new Promise((resolve, reject) => {
  let a = firstFunction(3000000000)();
  console.log(a);
  resolve();
});
myPromise.then(secondFunction(25));

function firstFunction(param) {
  return () => {
    let i;
    for (i = 0; i < param; i++) {}
    return i;
  }
}

function secondFunction(param) {
  return () => {
    console.log(param);
  }
}

→ Ссылка