帖子
帖子
用户
博客
课程
显示全部楼层

[App引擎] loadSecureValue的赋值问题

[复制链接]
发表于 2016-3-7 11:52:32
我把loadSecureValue方法做了一个简单的封装,上代码

function getConfigValue(key){
var data;
  api.loadSecureValue({
          key:key
  },function(ret,err){
       alert(ret.value)
          data= ret.value
  });
  alert("data值为"+data)
return data

}



但是发现,data无法获取到值,在回调里能获取到配置的值。这样导致我不能在全局中获取到配置文件中参数的值,只能在回调里写逻辑,好麻烦。
如果参数很多,岂不是要一层层嵌套写?
0
帖子
0
勋章
2139
Y币
代码是顺序执行的,不会等回调后才执行下一行,使用全局变量延后使用就可以了
caizhu 发表于 2016-3-7 12:20
代码是顺序执行的,不会等回调后才执行下一行,使用全局变量延后使用就可以了 ...

关键是无法给全局变量赋值啊,我给的例子里,data就无法获取到key的值
41
帖子
0
勋章
704
Y币
江苏欣网视讯 发表于 2016-3-7 12:40
关键是无法给全局变量赋值啊,我给的例子里,data就无法获取到key的值

你也回调~~你懂的~!function getConfigValue(key, callback ){}

这个API做的都是这样的写法,设置个偏好值也整个回调~~嵌套一层又一层~~
墨小优 发表于 2016-3-7 12:51
你也回调~~你懂的~!function getConfigValue(key, callback ){}

这个API做的都是这样的写法,设置 ...

也只能这样了,不过写起来怪怪的
我是这样解决的,
在一个通用的js文件中封装一个方法
function getConfigValue(key,callback){
  api.loadSecureValue({
          key:key
  },function(ret,err){
          callback(ret.value);
  });

}


然后在其他地方这样调用
   apiready = function () {
    getConfigValue('url',getValue);
}

    var sysurl;
    function getValue(data){
        sysurl=data;
       alert("第二次回调值:"+sysurl);
    }


这样就可以将值放入全局变量中了,获取多个参数的时候只能写多个回调的函数,个人感觉这样写怪怪的
4
帖子
0
勋章
88
Y币
江苏欣网视讯 发表于 2016-3-7 14:07
我是这样解决的,
在一个通用的js文件中封装一个方法
function getConfigValue(key,callback){

写了没反应啊…………怎么回事?
7
帖子
0
勋章
264
Y币
有道理, 我去试试. 有时我也想 var xx= 过程名
想xx=值
.
21
帖子
1
勋章
141
Y币
可以尝试用jq的ajax啊 在success里面回调请求返回的数据嘛
20
帖子
1
勋章
7581
Y币
该api现已支持同步操作,详细见该api的文档说明。
您需要登录后才可以回帖 登录

本版积分规则