Здесь у вас есть две совершенно независимые цепочки обещаний:
Promise.resolve()
.then(() => {
console.log(1);
})
.then(() => console.log(3));
(async () => {
await new Promise(resolve => {
resolve();
});
console.log(2);
}());
Нет другого гарантированного заказа, если 3
происходит после 1
. На остальное влияет то, как точные обратные вызовы в очереди ставятся в очередь, и изменилось значение spe c из await
(исключая одну ненужную процедуру разрешения с возможностью последующего использования), которое, вероятно, еще не реализовано в Safari. двигатель.