Это достаточно сложная тема в JavaScript. Нужно действительно понять логику. Есть полезный сайт, на котором можно визуально посмотреть, как он работает.
https://www.jsv9000.app/
Можете вставить такой код и посмотреть, на работу. Весьма наглядно.
const promise = new Promise((resolve, reject) => {
console.log(1);
setTimeout(() => {
console.log("timerStart");
resolve("success");
console.log("timerEnd");
}, 0);
console.log(2);
});
promise.then((res) => {
console.log(res);
});
console.log(4);
Еще одно из самых понятных видео есть у Ulbi TV.
https://www.youtube.com/watch?v=zDlg64fsQow
