js方法里axios请求无返回(undefined)的问题

utils.js,checkAccess方法里,axios请求去查询用户权限,在then里面去返回response的数据。
然后在其他模块调用这个方法: var result = checkAccess(UIItems.AdminMenu) ,但是拿不到返回值,一直说是undefined…

想了好久,都没有意识到,axios请求是异步的,请求一旦发送出去,浏览器就会继续执行后面的代码,那会儿根本还没有得到server的response呢…

害…脑子那会儿可能是冻住了

import axios from "axios"

export function checkAccess(uiElement){
axios.get("/api/someurl/checkPermission ", {
            params: { uiElement }
        })
      .then(res => {
      	return res.data;
      })
      .catch(err => {
        console.log(err);
        return false
      });
 }

把checkAccess方法改一下,直接返回axios.get()…,也就是一个Promise对象,然后在调用的地方去拿返回值。

import axios from "axios"

export function checAccess(uiElement){
    return(axios.get("/api/someurl/checkPermission ", {
            params: { uiElement }
        }));
}

版权声明:本文为sophie2805原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。