Получение ионного хранилища

#angularjs #typescript #ionic-framework #ionic4 #ionic5

#angularjs #машинописный текст #ionic-framework #ionic4 #ionic5

Вопрос:

Я пытаюсь получить значение из ионного хранилища, но здесь это не работает. Почему GET2 выполняется перед storage.get ? Мой мозг сломан, помогите, пожалуйста.

   public storageGet(key: string){
    var uid = 0;
     this.storage.get(key).then((val) => {
      console.log('GET1: '   key   ': '   val);
      if (val != null) { uid = val;}
    });
    console.log('GET2: '   key   ': '   uid);
  return uid;
  }
  

Возврат:

 GET2: uid: 0
GET1: uid: 1
  

Комментарии:

1. Это явно не проблема с ionic или angular. Вот как должны работать promises.

Ответ №1:

Вам нужно понять, как работает promise.

Этот код является асинхронным, все строки в then обратном вызове будут выполнены, но вы не можете решить, когда.

console.log("GET2") Выполняется строго после storage.get , эта часть синхронна.