所谓同步执行,就是从前往后执行,一句执行完了执行下一句。
而异步执行,则不会等待异步代码执行完,直接执行后面的代码;等异步代码执行完返回结果之后再进行处理。
比如一些耗时操作会使用异步执行的方式,以提高执行效率,最常见的莫过于Ajax
网络请求。
以jQuery Ajax为例,假设有这样的需求:
从地址A获取数据a,从地址B获取数据b,然后把数据a和b提交到接口C
ES6:Promise
如何用Promise
执行jQuery Ajax请求:
|
|
可以看到使用Promise
之后的代码变得更加简洁和统一。
但是Promise
也有不足之处,就是使用起来不是特别直观。
ES7:async+await
在ES7中,提供了async
和await
关键字,被称为异步的终极解决方案。
这个方案其实也是基于Promise
实现的,具体细节就先不展开,还是重点来看使用方式。
使用async
+await
来实现前面需求:
|
|
可以看到,async
+await
的写法更加直观,也更像同步的写法。
作者:黑客与码农链接:https://juejin.im/post/5b699cb36fb9a04f8e145343来源:掘金著作权归作者所有。