У меня были проблемы с моим локальным файлом, где localforage не может установить глобальную переменную в обратном вызове успеха, но когда i console.log
отображает значения.Назначить значение из localforage.getItem для глобальной переменной - ionic2
Localforage данные:
Key: login
Value: [{"token": "bla bla bla", "member_id":1}]
Код
public login_data: any;
getMemberData() {
localforage.getItem("login").then(function(value){
this.login_data = value[0];
});
console.log(this.login_data);
}
Выход
undefined
Все, что я хочу, чтобы мак e это в глобальную переменную. И я могу использовать его легко, например:
this.login_data.member_id
or
this.login_data.token
Некоторые способы, которые я пробовал, не соответствуют моим ожиданиям. я попробовал:
Assign value from successful promise resolve to external variable
how to assign the returned value of a promise to a variable?
setting a variable to get return from call back function using promise
Assign value from then function to a variable promise
[Примечание] Я использую Ионные 2, AngularJS 2, LocalForage
спасибо
он выводит сообщение об ошибке: 'неперехваченной (обещанию): TypeError: Невозможно установить свойство 'login_data' из null' – int11
Так у вас есть значение правильно неправдоподобные , теперь он устанавливает его против объекта login_data. Верный ? Попробуйте установить 'this.login_data = 'Данные для входа' вручную и отобразить вывод. Смотрите, если он даже принимает что-либо. Затем проверьте «значение», которое вы извлечете. Можете ли вы поделиться этим результатом? – Searching
Я думаю, что значение 'value' или' value [0] 'равно null, может быть, потому что оно не существует или недоступно из модуля. Поэтому я бы отступил назад, чтобы увидеть, как извлечь элемент ... и может быть даже проверка хранения через браузер devtools, чтобы узнать, существует ли элемент. Вызов 'getMemberData()' inside 'ngOnInit()' .. – Searching