码迷,mamicode.com
首页 > Web开发 > 详细

vue 中 ajax请求封装以及使用方法

时间:2019-06-30 15:48:48      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:名词解释   nbsp   数据   表示   ios   代码   from   思维   ase   

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 = ‘‘,params = {} ,type = ‘GET‘){
  let promise;
  return new Promise((resolve ,reject)=>{
  //  判断请求的方式
    if(type == ‘GET‘){
      let paramsStr = ‘‘;
      Object.keys(params).forEach( key=>{
        paramsStr += key+‘=‘+params[key]+‘&‘;
      })
      if(paramsStr != ‘‘){
        paramsStr = paramsStr.substr(0,paramsStr.lastIndexOf(‘&‘));
      }
      url+=‘?‘+paramsStr;
      promise = axios.get(url);
    }else{
      promise = axios.post(url,params)
    }
    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‘);

3.组件中调用请求方法

   import { getHomeCasual } from ‘./../api/index‘

   created(){
      this.getHomeData();
    },
    methods:{
      // 请求数据  async/await=>异步转为同步
      async getHomeData (){
          const result = await getHomeCasual();
          console.log(result);
      }
    }

  

vue 中 ajax请求封装以及使用方法

标签:名词解释   nbsp   数据   表示   ios   代码   from   思维   ase   

原文地址:https://www.cnblogs.com/dyy-dida/p/11110003.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!