解决"回调地狱"的发展过程
Way 1 :利用promise

Way 2 :利用generator

Way 3 :ES7新增关键字 async await

async将当前函数定义为异步函数,该函数返回一个promise对象
await用于一个异步操作之前,等待该异步操作结束,并得到异步执行的结果
await关键字返回promise对象中resolve方法传过来的值
Way 1 :利用promise

Way 2 :利用generator

Way 3 :ES7新增关键字 async await

async将当前函数定义为异步函数,该函数返回一个promise对象
await用于一个异步操作之前,等待该异步操作结束,并得到异步执行的结果
await关键字返回promise对象中resolve方法传过来的值