【问题标题】:return an undefined value with forge.prefs使用 forge.prefs 返回一个未定义的值
【发布时间】:2013-12-03 10:12:18
【问题描述】:
我尝试使用 PREFS 模块,但我不知道为什么它会返回一个未定义的值
function getId() {
var id=0;
forge.prefs.get("user_id", function(value){
id=value;
forge.logging.info("entry id " +id);
});
return id;
};
OUTPUT : 当我调用这个方法时它返回 0 !!!以及带有“条目 id 37”的日志
不知道为什么调用这个方法后id的值没有变化。
【问题讨论】:
标签:
ios5
preferences
trigger.io
【解决方案1】:
我从 Patrick Rudolph 那里找到了解决方案
forge.prefs.get() 可能是一个异步函数调用,这意味着它的回调执行有些延迟。在您的示例中 load_my_car() 在两个回调被触发之前执行,所以变量仍然是未定义的。
您必须确保在调用 load_my_car() 之前触发回调,试试这个:
forge.prefs.get('offset_val' function(offset1){
forge.prefs.get('id', function(val){
load_my_car(val,offset1);
});
})
;
如果你真的不想有两个嵌套的 forge.prefs.get() 你需要检查哪个回调首先完成,然后只在第二个完成后调用 load_my_car()。