Я пытаюсь вернуть значение объекта из хранилища.
Сначала я оцениваю, есть ли параметр «кеш», поэтому, если это так, я хочу проверить, сохранен ли он уже чтобы вернуть его, иначе я хочу сохранить его.
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;
}
Но сохраняет это так:
Как вы можете видеть на изображении, на самом деле ничего не сохраняется
и когда можно получить что-то от него, на самом деле пусто:
Я пока не получаю правильные Обещания и Наблюдаемые объекты: s Как я могу получить фактическую строку значение и вернуть его?