понимание объекта обещания JavaScript

Я пытаюсь обернуть голову вокруг объекта обещания в javascript. Так что здесь у меня есть этот маленький кусочек кода. У меня есть объект обещания и два console.log () по обе стороны от объекта обещания. Я думал, что это напечатает

Привет

Там

З

но это напечатано

HI

zami

there

почему это так. У меня нет понимания того, как работает обещание, но я понимаю, как работает асинхронный обратный вызов в javascript. Может ли кто-нибудь пролить свет на эту тему?

console.log('hi');
var myPromise = new Promise(function (resolve, reject) {
    if (true) {
        resolve('There!');
    } else {
        reject('Aww, didn\'t work.');
    }
});

myPromise.then(function (result) {
    // Resolve callback.
    console.log(result); 
}, function (result) {
    // Reject callback.
    console.error(result);
});
console.log('zami');

Ответы на вопрос(3)

Ваш ответ на вопрос