Почему он будет иметь разные ответы с одинаковым кодом в разных версиях Chrome? - PullRequest
0 голосов
/ 18 февраля 2019

Сегодня я прочитал вопрос о 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, и я надеваюне найти ответ. Почему у него два разных ответа?

...