Получение только последнего символа значения Object с помощью mergeMap / FlatMap - PullRequest
0 голосов
/ 20 марта 2020

Я искал способ вернуть внутреннюю 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, а не только последний символ? я должен использовать другой оператор?

...