Я только что начал использовать ng2 translate в своем проекте Ionic 2 (Angular 2). Я обнаружил, что когда мне нужно получить сразу несколько строк, код становится вложенным и намного сложнее читать. Я как бы удивляюсь, почему что-то подобное (просто испускающее одно значение) нужно использовать наблюдаемое, но, возможно, есть веская причина. Так или иначе ...Как подключить вызовы к ng2-Перевести, а rxjs наблюдаемые вообще?
Так, например, сказать, что я имел 4 струны для чтения в различных точках в методе
let result1: string;
let result2: string;
let result3: string;
let result4: string;
this.translate.get("key1").subscribe(value1 => {
result1 = value1;
this.translate.get("key2").subscribe(value2 => {
result2 = value2;
// do some other stuff, which may have another observable returned so yet another level of nesting)
this.translate.get("key3").subscribe(value3 => {
result3 = value3;
// do some other stuff
this.translate.get("key4").subscribe(value4 => {
result4 = value4;
}
}
...
Теперь представьте себе, есть больше, чем 4 строки. Также, когда есть другой код между ними (например, я могу также назвать хранилище Ionic, которое также возвращает Observable), код становится очень вложенным - и это без обработки ошибок.
Итак, вопрос в том, есть ли «более плоский» способ сделать это? Есть ли какая-либо цепочка (даже если она похожа на обещание) на цепочку), возможно, включая обработку ошибок (даже если был какой-то блок catch верхнего уровня)
Я видел другой пример цепочки, но они, похоже, делают . больше с операторами, а не много наблюдаемых как выше
Вышеперечисленные работы большой, но у меня возникают проблемы, отлов ошибок. Открыли это в новом [post] (http://stackoverflow.com/questions/41755718/how-to-trap-errors-from-chained-rxjs-observables-when-using-combinelatest). – peterc