JS异步编程

思考以下异步编程中的执行顺序和结果:

async function async1() {
  console.log("async1 start");
  await async2();
  console.log("async1 end");
}
async function async2() {
  setTimeout(() => {
    console.log('timer')
  }, 0)
  console.log("async2");
}
async1();
console.log("start")

结果如下:

async1 start

async2

start

async1 end

timer

async function async1 () {
  console.log('async1 start');
  await new Promise(resolve => {
    console.log('promise1')
    resolve('promise resolve')
  })
  console.log('async1 success');
  return 'async1 end'
}
console.log('srcipt start')
async1().then(res => {
  console.log(res)
})
new Promise(resolve => {
  console.log('promise2')
  setTimeout(() => {
    console.log('timer')
  })
})

结果如下:

srcipt start

async1 start

promise1

promise2

async1 success

async1 end

timer

原创文章,作者:czhdawn,如若转载,请注明出处:https://www.czhdawn.cn/archives/4959

(0)
czhdawn的头像czhdawn
上一篇 3天前
下一篇 2022年8月31日 13:12

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注