vue async/await处理异步请求
async/await的基本用法
这是一个用同步的思维来解决异步问题的方案,当前端接口调用需要等到接口返回值以后渲染页面时。
- async/await是ES7引用的新语法,可以更加方便的进行异步操作
- async关键子用于函数上(async函数的返回值是Promise实例对象)
- await关键字用于async函数当中(await可以得到异步的结果,后跟Promise实例对象)
async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行,async 函数返回的是一个promise 对象。
await的含义为等待。意思就是代码需要等待await后面的函数运行完并且有了返回结果之后,才继续执行下面的代码。这正是同步的效果
// async function queryData() { // var ret = await axios.get('adata'); // // console.log(ret.data) // return ret.data; // } async function queryData() { var ret = await new Promise(function(resolve, reject){ setTimeout(function(){ resolve('nihao') },1000); }) // console.log(ret.data) return ret; } queryData().then(function(data){ console.log(data) })
async/await处理多个异步请求
第二个接口需要调用第一个接口获取的数据
使用async/await就能像平时一样将所需要的代码一条一条的运行
async function queryData() { var info = await axios.get('async1'); var ret = await axios.get('async2?info=' + info.data); return ret.data; } queryData().then(function(data){ console.log(data) })