async意思是异步
await的意思是等待
这两个关键字是在ES7中新加入的语法,如果要在浏览器中使用考虑到兼容性的问题,我们还是需要使用babel进行转换。七亩地是为了解决js中的异步问题。
现在异步解决方案有三种:
回调函数
promise
async(Generator)
因为js的异步机制,我们所有的异步操作都会被放到一个队列中,等到所有的同步的操作执行完毕了,才会去执行异步队列中的程序,回调函数是最基础的处理方案,也就是在某个异步操作操作完成以后对返回的结果进行操作。但是使用回调函数也会有一个问题,就是会产生回调地狱,而且,我们的函数会不好看。有的时候我们就是需要等到异步操作执行完成才能进行后面的操作,这样代码写起了就很难看。
而使用promise虽然能解决回调地狱的问题,但是他看起来还是不像是同步的代码,需要大量的 .then 操作,其实写多了也很烦的。而async就是号称是最终解决方案了。
如果我们需要获取到一个异步请求的数据,我们使用这三种方法应该怎么做呢?
回调函数
```
getDate(res=>{clg res})
```
promise
```
getDate.then(res=>{ clg res},res=>{ clg res})