全栈:async-await
async/await是什么
async/await 是ES7提出的基于Promise的解决异步的最终方案。async
- async是一个加在函数前的修饰符,被async定义的函数会默认返回一个Promise对象resolve的值。
- 因此对async函数可以直接then,返回值就是then方法传入的函数。
- 但await 相当于 Promise 的 then ,then指的是成功,不指失败。
- 执行 async 函数,返回的是 Promsie 对象
await
await 也是一个修饰符,只能放在async定义的函数或者方法内。理解为等待。
await 修饰的如果是Promise对象:可以获取Promise中返回的内容(resolve或reject的参数),且取到值后语句才会往下执行;在我们做网络请求时,用到async-await如下:
async function fn () { var url="http://192.168.1.1:8080/ajax1" let data=await axios(url) console.log(data) var url2="http://192.168.1.1:8080/ajax2" let data2=await axios(url2) console.log(data2) }
await 和 then 的区别
then还需要传回调进去,但 await 可以直接得到值