我尝试使用模块PREFS,但我不知道为什么它会返回一个未定义的值
function getId() {
var id=0;
forge.prefs.get("user_id", function(value){
id=value;
forge.logging.info("entry id " +id);
});
return id;
};
输出:当我调用此方法时,它返回0!以及“entry id 37”的日志
我不知道为什么调用此方法后id的值不会改变。
答案 0 :(得分: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()。