思考以下异步编程中的执行顺序和结果:
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