2014-01-15 2 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 (набор);