Сегодня я прочитал вопрос о github, некоторые вопросы интервью о цикле событий , это третий пример
async function a1 () {
console.log('a1 start')
await a2()
console.log('a1 end')}
async function a2 () {
console.log('a2')
}
console.log('script start')
setTimeout(() => {
console.log('setTimeout')
}, 0)
Promise.resolve().then(() => {
console.log('promise1')
})
a1()
let promise2 = new Promise((resolve) => {
resolve('promise2.then')
console.log('promise2')
})
promise2.then((res) => {
console.log(res)
Promise.resolve().then(() => {
console.log('promise3')
})
})
console.log('script end')
Я получаю два разных ответа в разных версиях Chrome, когда я запускаюэто в Chrome V72, я получаю это:
script start
a1 start
a2
promise2
script end
promise1
promise2.then
promise3
a1 end
setTimeout
, и я запускаю его в Chrome V68, я получаю этот ответ:
script start
a1 start
a2
promise2
script end
promise1
a1 end
promise2.then
promise3
setTimeout
Я читаю журнал изменений Chrome, и я надеваюне найти ответ. Почему у него два разных ответа?