zoukankan      html  css  js  c++  java
  • RxJS之catchError

    Catches errors on the observable to be handled by returning a new observable or throwing an error.

    返回新的可观察对象

    import { Component, OnInit } from '@angular/core';
    import { of } from 'rxjs/observable/of';
    import { map, catchError, retry } from 'rxjs/operators';
    
    @Component({
      selector: 'app-error',
      templateUrl: './error.component.html',
      styleUrls: ['./error.component.css']
    })
    export class ErrorComponent implements OnInit {
    
      constructor() { }
    
      ngOnInit() {
        of('Leo', 'Raph', 'Mikey', 'Don').pipe(
          map(turtle => {
            if (turtle === 'Mikey') {
              throw new Error('出错了');
            }
            return turtle;
          }),
          catchError(err => of('Aioria', 'Mu'))
        ).subscribe(turtle => {
          console.log(turtle);
        });
      }
    
    }

    继续抛出异常

    import { Component, OnInit } from '@angular/core';
    import { of } from 'rxjs/observable/of';
    import { map, catchError, retry } from 'rxjs/operators';
    
    @Component({
      selector: 'app-error',
      templateUrl: './error.component.html',
      styleUrls: ['./error.component.css']
    })
    export class ErrorComponent implements OnInit {
    
      constructor() { }
    
      ngOnInit() {
        of('Leo', 'Raph', 'Mikey', 'Don').pipe(
          map(turtle => {
            if (turtle === 'Mikey') {
              throw new Error('出错了');
            }
            return turtle;
          }),
          catchError(err => {
            throw new Error('继续抛出异常');
          })
        ).subscribe(turtle => {
          console.log(turtle);
        });
      }
    
    }

    重新尝试

    import { Component, OnInit } from '@angular/core';
    import { of } from 'rxjs/observable/of';
    import { map, catchError, retry } from 'rxjs/operators';
    
    @Component({
      selector: 'app-error',
      templateUrl: './error.component.html',
      styleUrls: ['./error.component.css']
    })
    export class ErrorComponent implements OnInit {
    
      constructor() { }
    
      ngOnInit() {
        of('Leo', 'Raph', 'Mikey', 'Don').pipe(
          map(turtle => {
            if (turtle === 'Mikey') {
              throw new Error('出错了');
            }
            return turtle;
          }),
          retry(2),
          catchError(err => of('Aioria', 'Mu'))
        ).subscribe(turtle => {
          console.log(turtle);
        });
      }
    
    }

     

     

  • 相关阅读:
    Spring多数据源动态切换
    IntelliJ Idea使用代码格式化,Tab制表符进行缩进
    idea 快捷键
    final关键字的功能概述
    IntelliJ Idea 常用快捷键列表
    Log4j.properties配置详解
    IDEA添加try catch快捷键
    使用 JMeter 进行压力测试
    idea 复制当前行到下一行快捷键
    js父窗口opener与parent
  • 原文地址:https://www.cnblogs.com/sea-breeze/p/9035370.html
Copyright © 2011-2022 走看看