Я искал способ вернуть внутреннюю Observable / Promise и обнаружил, что с помощью mergeMap / flatMap в этом случае он ждет результата внутренней Observable
return Observable.fromPromise(this.storage.get("translationCache"))
.map((val) => {
if(val && val.hasOwnProperty(value)){
let v = value;
console.log("In Memory:");
console.log(val[v]);
return val[v];
}else{
return this.translateAction(value);
}
});
Так что я проверяю объект, сохраненный в хранилище, например, если там сохранено {"All": "Todos"}, он показывает только "s" из "Todos", а блок else возвращает прямой перевод. Таким образом, с помощью mergeMap блок else работает.
с картой:
return Observable.fromPromise(this.storage.get("translationCache"))
.mergeMap((val) => {
if(val && val.hasOwnProperty(value)){
let v = value;
console.log("In Memory:");
console.log(val[v]);
return val[v];
}else{
return this.translateAction(value);
}
});
Я получаю правильные значения переводов, сохраненных в хранилище, но блок else не ожидает перевода, и он дает мне [Object Object]
Есть ли способ соединить весь текст вместе с mergeMap, а не только последний символ? я должен использовать другой оператор?