Возврат Наблюдаемый от Обещания Иони c Хранение - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь вернуть значение объекта из хранилища.

Сначала я оцениваю, есть ли параметр «кеш», поэтому, если это так, я хочу проверить, сохранен ли он уже чтобы вернуть его, иначе я хочу сохранить его.

   if(valueCache === "cache"){
     if(this.StoredInStorage(value)!=null){
       this.StoreInStorage(value).subscribe(res => {
         return res;
       });
     }else{
       this.StoredInStorage(value).subscribe(res => {
         return res;
       });
     }

    }

, и это методы

StoredInStorage(value:string ):Observable<any>{
      let st = this.storage.get('translationCache');
      return Observable.fromPromise(
        st.then((val) => {
          if(val && val.hasOwnProperty(value)){
            console.log("Hay val en memoria");
            let v = value;
            if(val.hasOwnProperty(v)){
              console.log("Encontrado en memoria:");
              console.log(val[v]);

              return val[v];
            } else {
              console.log("este else qlq?");
              return null;
            }
          }
        })
      ); 
    }

    StoreInStorage(value:string ):Observable<any>{
      let st = this.storage.get('translationCache');
      return Observable.fromPromise(
        st.then((res) => {
          if(res === null){
            res = {};
          }
          if(!res.hasOwnProperty(value)){
            console.log(this.Translation(value));
            res = Object.assign(res, {[value] :this.Translation(value)});
            this.storage.set('translationCache', res);
            console.log("traduccion añadida");
            console.log(value + ":" + this.Translation(value));
            return this.Translation(value);
          }
        })
      ); 
    }

, так как мне приходится ждать перевода, чтобы сохранить его, у меня есть этот другой наблюдаемый Ну, на самом деле обещания обращены к Observables

Translation(value):Observable<any>{
      const params = {
      Text: value,
      SourceLanguageCode: "en",
      TargetLanguageCode: "es"
    };
   let actionPromise = this.translate.translator.translateText(params).promise();
    let observe = Observable.fromPromise(
      actionPromise.then((data) => {
        return (data.TranslatedText);
      }).catch((err) => {
        console.log(err);
        return err;
      })
    );
    return observe;
}

Но сохраняет это так: enter image description here

Как вы можете видеть на изображении, на самом деле ничего не сохраняется

и когда можно получить что-то от него, на самом деле пусто: enter image description here

Я пока не получаю правильные Обещания и Наблюдаемые объекты: s Как я могу получить фактическую строку значение и вернуть его?

...