leslie1943/blog

异步编程-Promise 题目 5 - 8

Opened this issue · 0 comments

Promise 5 - 8

async function async1() {
  console.log('async1 start')
  await async2()
  console.log('async1 end')
}

async function async2() {
  console.log('async2')
}

console.log('script start')

setTimeout(function () {
  console.log('setTimeout')
}, 0)

async1()

new Promise(function (resolve) {
  console.log('promise1')
  resolve()
}).then(function () {
  console.log('promise2')
})
console.log('script end')

/**
 * script start
 * async1 start
 * async2
 * promise1
 * script end
 * async1 end
 * promise2
 * setTimeout
 *
 */

讲解

这道题最后async1 endpromise2的顺序其实在网上饱受争议,我这里使用浏览器 Chrome V80, Node v12.16.1的执行结果都是上面这个答案)