2
从this post继,我有以下如何在使用combineLatest时从链式rxjs observables中捕获错误?
Observable.combineLatest(
this.translate.get("key1"),
this.translate.get(""),
this.translate.get("key3"),
this.translate.get("key4")
)
.subscribe(([result1, result2, result3, result4]) => {
console.log(result1);
console.log(result2);
console.log(result3);
console.log(result4);
},
error => {
console.log(`${error}`);
});
在第2行我得到一个错误,但是这似乎并没有进入error
处理器上面。不幸的是,我发现的例子和doco似乎没有包括如何捕捉错误(假设上述方法会起作用)。
有没有人有关于如何做到这一点的任何想法?
好的,我明白了。我尝试在整个程序中添加一个正常的(非rxjs相关的)try/catch块,并且错误确实进入了捕获。所以我认为这是我们在这里所能做的。 – peterc
你可以看看源代码以确保发生了什么,但是如果错误不是通过可见性引发的,那么除了确保你传递了有效的密钥之外,你无能为力。 – cartant
这是一个好主意(查看源代码)。是的,如果密钥没有定义或长度为零,它确实处于最高位置时会引发错误。我还发现另一种方法'instant()'(我不知道这个),它只是返回字符串 - 在doco中)它解释了如果使用这个,需要确保异步文件加载已完成。 – peterc