【发布时间】:2020-03-18 17:26:22
【问题描述】:
我从 Promise 中返回 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;
}
我想将该文本保存到存储中并返回翻译(其他块)
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],因为它不等待翻译文本
【问题讨论】:
标签: angular ionic-framework observable angular2-observables