JavaScript学习
Async Await
async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成
async 会将其后的函数(函数表达式或 Lambda)的返回值封装成一个 Promise 对象,而 await 会等待这个 Promise 完成,并将其 resolve 的结果返回出来。
await 只能出现在 async 函数中
async 函数返回的是一个 Promise 对象,所以在最外层不能用 await 获取其返回值的情况下,应该用原来的方式: then() 链来处理这个 Promise 对象
async/await 的优势在于处理 then 链:Promise 通过 then 链来解决多层回调的问题,又用 async/await 来进一步优化
Promise:处理异步的解决方案
1. 类似一个容器,保存着未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息
2. 一旦状态改变,就不会再变,任何时候都可以得到这个结果 ( resolve 或 reject )