赞
踩
async用于申明一个function异步的
await用于等待一个异步方法执行完成
async优点
1,内置执行器
2,更好语义
3,更广泛适用性
带async关键字的函数,使得函数返回值必为promise对象
1.await等的是右侧【表达式】结果,右侧表达式执行完后抛出
2.宏任务与微任务
宏任务是代码主线,遇到了setTimeout会创建一个宏任务
遇到promise,then之类的微任务会推到当前宏任务的微任务队列中,在本轮宏任务的同步代码执行完后,依此执行微任务
例
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 */
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。