Я возвращаю Observables из обещаний
Сначала этот, который возвращает перевод
translateAction(t): Observable<any>{
const params = {
Text: t,
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;
}
, и я хочу сохранить этот текст в хранилище и вернуть перевод (блок else)
let st = this.storage.get("translationCache");
let observeSt = Observable.fromPromise(
st.then((val) => {
console.log("alo?49");
if(val && val.hasOwnProperty(value)){
let v = value;
console.log("Encontrado en memoria:");
console.log(val[v]);
return val[v];
}else{
console.log("alo?60");
let v = value;
let textT = this.translateAction(v).subscribe(t => {
textT = t;
if(val === null){
val = {};
}
val = Object.assign(val, {[v] : textT});
this.storage.set('translationCache', val);
console.log("traduccion añadida");
console.log(v + ":" + textT);
return textT;
},err => {console.log(err)}); return textT;
}
})
);
return observeSt;
Ожидаемое поведение: Сохранение текста в хранилище, а затем возврат перевода.
Текущее поведение: Сохранение данных через некоторое время, но возврат [Object Object], поскольку он не ожидает переведенного текста