ES6的改版,主要是通过引入JAVA等静态语言的优秀思想来解决老版本的一些痼疾,如作用域,回调,继承和封装等问题。这些改革措施是非常成功的,ES6让JS真正变成了一种好用的语言。这里是关于es7的async/await。

ES6
es6的promise写法还是不够优雅,因为后面会跟很多then()。应该说,async/await是目前解决回调问题最好的方案了。
a:
async函数是什么?
b:一句话,它就是Generator函数的语法糖。
a:而Generator又是神马?
b:是es6的一个语法。
a:这个语法干嘛的?
b:不用管它,只需要把async搞明白。
要在node7下面才能玩es7,低版本是玩不了的哈。目前官网最新测试版本是10.*,稳定版出到8.*,所以安装好就可以使用了。
使用async/await的目的就是去除掉Promise后面的then(),在并行下也没有then()的,主要是串行,就是互相依靠的请求方式。
- 假设有三个请求:
请求1:拿到userid,传递给请求2。
请求2:根据userid,查询ssoid,传递给请求3。
请求3:根据ssoid,查到最终结果。 
那么,如果可以这么写就好了:
1  | var userid = getRequest1();  | 
把之前es6的写法改一下:
1  | var request = require('request');  | 
注意:
 1
2
3
4
5
6 1.async需要放在函数声明前,表示这个函数返回的一定是promise对象。
2.await后面也必须是promise对象,表示这个任务是需要等待的。
3.最后用then()获取所有接口的信息,catch()捕获所有异常。
4.这种写法虽然类似同步,但实际是promise的简化写法,不可混为一谈!
这样,简单整洁,只留一个then和catch。