一、了解什么是同步什么是异步
同步:代码从上往下执行,如果前面的代码执行得比较慢,后面的代码就一直在等待
异步:针对一些比较耗时的异步API,js不会同步执行它们,而是异步,比如定时器以及事件处理函数
二、了解执行流程
1、 浏览器是多线程
2、 js引擎是单线程
先执行同步代码,发现异步代码调入新的区域执行,完成后进入回调队列中排队等候,当同步代码执行完成后会再去执行回调队列的代码
event loop + callback queue
举例:
三、异步函数不能立即获得执行结果
在同步中可以获取到return的123
下面我们使用异步代码
因为执行完console.log再执行异步函数里面的代码,所以输出结果是undefined
四、解决异步函数不能立即获得执行结果