我的理解:promise在处理嵌套调用的时候,需要在then里面接着调用then,代码可读性较低。async和await可以帮助我们解决这种嵌套调用的问题(即一个异步事件需要上一个异步事件执行完毕后才能执行),避免回调地狱的问题,使代码看起来如同步代码一样。
- async 是异步的意思,await则可以理解为 async wait。所以可以理解async就是用来声明一个异步方法,而 await是用来等待异步方法执行
- async作为一个关键字放在函数前面,表示该函数是一个异步函数,异步函数意味着该函数的执行不会阻塞后面代码的执行;而 await 用于等待一个异步方法执行完成;
- 当函数内部执行到一个 await 语句的时候,如果语句返回一个 promise 对象,那么函数将会等待 promise 对象的状态变为 resolve 后再继续往下执行。并会阻塞该函数内后面的代码。
- 因此async/await的作用就是将异步逻辑,转化为同步的顺序来书写,并且这个函数可以自动执行。
- 为了优化 .then 链而开发出来的。