同步函数就是一条条执行
异步函数就是暂时没有结果。,需要一定条件才能得到结果,比如定时任务,ajax请求,事件函数。
当程序遇到异步函数。会先跳过异步函数而执行后面的同步函数。异步函数到了机会自动执行。
ajax请求多个结果,就是多个异步函数,因为其他原因(网络,服务器,处理方法),而导致这些结果不能按顺序接收到,而你又想按顺序接收到结果,可以通过一层层嵌套,万一有18层。就容易成为18层回调地狱。
Promise可以简化这个操作,通过.then拿到当前结果,并return一个请求)}然后又可以通过点then,循环,并不会成为回调地狱。
.then中加入return,出来依旧是一个promise,可以继续用.then接收,就可以不用嵌套回调地狱啦
可还是有点麻烦,出现了async,await
await后面跟一个Promise实例对象。并写在async函数里面,await返回接收到的结果,
等awaite执行完毕后才会执行await后面的代码
async 中return也是一个promise,也可以用.then接收
下图中第二个await会等着第一个await执行完毕,return ret会等第二个await执行完毕