Promis解决element异步请求配置获取不到的问题
总结:Promise对象then函数一定会在异步请求完成后执行
问题描述:

调用方法:
getProvinceCityList(12)
获取到的 cityList 是空值
输出顺序是:
return ajax callback
所以改写一下:

调用方法:

通过返回promise对象保证 OriginCityList 的赋值一定是在ajax请求返回以后的赋值
// 获取省份下属的所有市列表 getProvinceCityList(provinceID) { let cityList = []; let params = {}; params.id = provinceID; return new Promise(function (resolve, reject) { getProvinceCityList(params, res => { if (res.code == 0) { cityList = res.data; resolve(cityList); }else{ reject(); } }); }); },
以下
this.getProvinceCityList(provinceID).then(function (value) { that.OriginCityList = value; that.form['dc_talent'].native_city_id = ""; return; });
代码改变世界
import { getPermissionList, getPermissionCodeList } from "../../../util/permission"; export default { data: function () { return { isSuperAdmin: false, permissionList: [], permissionCodeList: {}, permissionCodeConfig: {}, } }, mounted() {}, methods: { initPermissionList() { // 初始化用户权限列表 getPermissionList().then( (cfg) => { this.isSuperAdmin = cfg.isSuperAdmin; this.permissionList = cfg.permissionList; for (let idx = 0; idx < cfg.permissionCodeList.length; idx++) { const code = cfg.permissionCodeList[idx]; this.permissionCodeList[code] = true; } }, () => { console.error("获取权限配置失败"); } ); }, initPermissionCfg() { getPermissionCodeList().then( (cfg) => { this.permissionCodeConfig = cfg; }, () => { console.error("获取权限配置失败"); } ); }, // 校验权限点 // wystanxu // codeIdx -->> STARTINTERVIEW // 接口 /zhaopin/talent/getPermissionCode 定义键 checkPermission(codeIdx) { let that = this; async function getData() { await that.initPermissionList(); await that.initPermissionCfg(); } getData(); if (this.isSuperAdmin) { return true; } else { return this.permissionCodeList.hasOwnProperty(this.permissionCodeConfig[codeIdx]); } } }, };
I can see a bigger world.

浙公网安备 33010602011771号