• 错误处理

    错误处理

    如果出现意外事件,我们可以在Observable流上引发一个错误,并在订阅例程中使用保留用于处理错误的函数来查看发生了什么。

    1. export class App {
    2. values: number[] = [];
    3. anyErrors: Error;
    4. private data: Observable<number[]>;
    5. constructor() {
    6. this.data = new Observable(observer => {
    7. setTimeout(() => {
    8. observer.next(10);
    9. }, 1500);
    10. setTimeout(() => {
    11. observer.error(new Error('Something bad happened!'));
    12. }, 2000);
    13. setTimeout(() => {
    14. observer.next(50);
    15. }, 2500);
    16. });
    17. let subscription = this.data.subscribe(
    18. value => this.values.push(value),
    19. error => this.anyErrors = error
    20. );
    21. }
    22. }

    这里出现一个错误并捕获。 需要注意的一点是,如果我们在引发错误后包含一个.complete(),这个事件不会真正触发。 因此,您应该记住在错误处理程序中包含一些调用,这将关闭应用程序中的任何可视加载状态。