关于获取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获取返回值啊?

阅读 2.5k
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');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题