2014-01-15 140 views
0

我试图使用forge.prefs来存储变量,但似乎没有任何保存。使用forge.prefs总是返回undefined

我使用了以下内容:

var all = forge.prefs.keys(function(keysArray){ return keysArray}, 
          function(content){return content}); 

forge.logging.log(all); 

但这总是返回undefined 我也有与设定了同样的问题,似乎没有任何合作。

var set = forge.prefs.set(key,value,function(){},function(content){return content;}); 
forge.logging.log(set); 

再次返回undefined并且没有错误或任何错误。

我做错了什么?

使用docs found here

UPDATE

我不会做这样的事情如下:

var get = forge.prefs.get(key, 
        function(value){return value;}, 
        function(error){forge.logging.log(error); 
}); 

if(get){ 
// do something here 
}else{ 
// do something here 
} 

回答

0

这些方法是异步的,这意味着后续代码可能会在回调成功和错误函数返回之前执行。依靠这一结果的所有后续的代码应该在回调中运行:

forge.prefs.keys(function(keysArray){ // success 
    forge.logging.log(keysArray); 
    // subsequent code relying on a positive outcome here ... 
}, 
function(error){ // error 
    forge.logging.log('Something bad happened: ' + error); 
}); 

forge.prefs.set(key, value, function(){ // success 
    forge.logging.log(key + ' was properly set); 
    // subsequent code relying on a positive outcome here ... 
}, 
function(error){ // error 
    forge.logging.log('Something bad happened: ' + error); 
}); 

UPDATE:使用这种实现你的问题的更新部分:

var get; 
forge.prefs.get(key, function(value){ // success 
    get = value; 
    forge.logging.log('Found value: ' + get); 
    // subsequent code here ... 
}, 
function(error){ // error 
    forge.logging.log('Something bad happened: ' + error); 
}); 
+0

好的,那么有没有把它分配给变量? –

+0

您也可以声明一个变量并在成功回调中分配它。但是,当设置一个pref时,你想要赋给一个变量什么?无论成功与否? –

+0

更新了问题 –

0

看样子你不是在forge.pref返回任何东西。设置成功功能。您的退货内容;在错误函数中,所以如果它没有抛出错误,你将不会返回任何东西。

尝试这种情况:

var set = forge.prefs.set(key,value,function(){ return value; },function(content){return content;}); 

forge.logging.log(组);

相关问题