Ioni c 3 хранилище не может получить локальную переменную хранилища иногда в производственном режиме - PullRequest
0 голосов
/ 15 февраля 2020

Я использую ioni c хранилище https://ionicframework.com/docs/v3/native/native-storage/ для хранения данных моего проекта, он также работал на платформе браузера.

НО, когда я построил android Платформа с производственным режимом, иногда я могу получить значение хранилища (текущие данные пользователя), иногда я не могу получить его. Откуда я это знаю?

    return new Promise( (resolve) => {
      this.storage.get('currentUser').then( (currentUser) => {
        let headers = new Headers();

        if(currentUser) {
          headers.append('Authorization', `Token ${currentUser.authentication_token}`);
        }

        if(['get', 'delete'].indexOf(method) >= 0) {
          let options = new RequestOptions({ headers: headers, params: params });
          this.http[method](ENV.API_ENDPOINT + path, options).subscribe( (data) => {
            resolve(data);
          }, (errors) => {
            resolve(errors);
          });
        } else {
          let options = new RequestOptions({ headers: headers });
          this.http[method](ENV.API_ENDPOINT + path, params, options).subscribe( (data) => {
            resolve(data);
          }, (errors) => {
            resolve(errors);
          });
        }
      }).catch((error) => {
        console.log("BaseProvider: error fetching customer from storage");
      }) // end get currentCustomer
    }); // end obserable
  }

У меня есть базовый провайдер, который помогает мне отправлять запрос в API, при загрузке приложения я отправляю запрос на сервер и получаю настройки приложения, но приложение зависает, потому что оно невозможно получить переменную currentUser.

Внутри app.module я установил порядок хранения, как это c 3, он отлично работает на IOS, но не стабильно на Android.

...