关于获取js闭包内返回值的问题

function getConfigData(type) {
    var options={
            requestType:'GET',
            url:'/api/data/GetDictData?dictType='+type+'&defaultValue=',
            callback: function (text) {
                var result = json.decode(text);
                return result.data;
        }
    }
    RequestData(options)
    
}
var Genders = getConfigData('sys_user_sex');

我通过JS向服务器请求了值,并有返回来的值,只是现在无法让Genders获得到返回值,请教一下这里我应该怎么修改才能让Genders获取返回值啊?

回复
阅读 1.7k
3 个回答

改造一下 就行了 用promise

function getConfigData(type) {
   return new Promise((resolve, reject) => {
     var options={
            requestType:'GET',
            url:'/api/data/GetDictData?dictType='+type+'&defaultValue=',
            callback: function (text) {
                var result = json.decode(text);
                resolve(result.data)
                return;
        }
      }
      RequestData(options)
   })
    
}
var Genders = await getConfigData('sys_user_sex');

异步操作返回值请通过回调,以及回调的封装 promise 来实现

async function getConfigData(type) {
    var options={
            requestType:'GET',
            url:'/api/data/GetDictData?dictType='+type+'&defaultValue=',
            callback: function (text) {
                var result = json.decode(text);
                return result.data;
        }
    }
  const result= await RequestData(options);
  return result
    
}
var Genders = getConfigData('sys_user_sex');
推荐问题
宣传栏