async/await
1)async/await场景
这是一个用同步的思维来解决异步问题的方案,当前端接口调用需要等到接口返回值以后渲染页面时。
2)名词解释
>async
async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行, async 函数返回的是一个promise 对象。
>await
await的含义为等待。意思就是代码需要等待await后面的函数运行完并且有了返回结果之后,才继续执行下面的代码。这正是同步的效果
例子如下:await要放在async中,并且await后面的函数运行后必须返回一个Promise对象才能实现同步的效果。
1.api/ajax.js
import axios from 'axios' export default function ajax(url = '',p@R_502_6460@ms = {} ,type = 'GET'){ let promise; return new Promise((resolve ,reject)=>{ // 判断请求的方式 if(type == 'GET'){ let p@R_502_6460@msstr = ''; Object.keys(p@R_502_6460@ms).forEach( key=>{ p@R_502_6460@msstr += key+'='+p@R_502_6460@ms[key]+'&'; }) if(p@R_502_6460@msstr != ''){ p@R_502_6460@msstr = p@R_502_6460@msstr.substr(0,p@R_502_6460@msstr.lastIndexOf('&')); } url+='?'+p@R_502_6460@msstr; promise = axios.get(url); }else{ promise = axios.post(url,p@R_502_6460@ms) } promise.then((res)=>{ resolve(res.data) }).catch((err)=>{ reject(err); }) }) }
2.api/index.js
import ajax from './ajax' const BASE_URL = 'https://localhost:3000/'; //请求方法 export const getHomeCasual = ()=>ajax(BASE_URL+'Homeapp.do');
import { getHomeCasual } from './../api/index' created(){ this.getHomeData(); }, methods:{ // 请求数据 async/await=>异步转为同步 async getHomeData (){ const result = await getHomeCasual(); console.log(result); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。