Обещание будет разрешено в асинхронном режиме c, но распознаватель (код, который вы запускаете при создании обещания) выполняется сразу.
Это означает, что перед выполнением console.log(2)
дорогостоящее l oop выполнен. Вот почему вы видите задержку.
Вы можете использовать setTimeout
, чтобы перенести выполнение на более позднее время.
console.log(1);
var pro = new Promise((resolve, reject) => {
setTimeout( () => {
let myDate;
for (let i = 0; i < 1000000; i++) {
let date = new Date();
myDate = date
}
resolve(myDate);
}, 100)
});
pro.then((res) => {
console.log(res);
});
console.log(2);