rxjs5. X 시리즈 - 오류 처리 / 조건 / 수학 시리즈 api 노트

14072 단어 NG4
머리말
본문 은 필자 가 번역 한 것 이다. RxJS 5. X 홈 페이지 각종 operation 작업 시리즈 의 네 번 째 편 —— ErrorHanding 이상 처리, Condition Operator 상황 조작, Mathmatical 수학 조작.오류 가 있 으 면 알림 O (∩ ∩) O 를 지적 해 주 십시오.더 자세 한 자 료 는 rxjs 홈 페이지 [http://reactivex.io/rxjs/manual/overview.htm] 데모 예 가 있 는 사이트 와 [http://xgrommx.github.io/rx-book/content/observable】。
본 논문 에서 Error Handing 작업 에 관 한 내용 은 catch, retry, retry When 이다.
Condition 작업 에 대한 내용 은 default IfEmpty, every, find, findIndex, isEmpty 입 니 다.
Mathmatical 작업 에 관 한 내용 은 count, max, min, reduce 입 니 다.
 
캐 치
현재 Observable 에 발생 할 수 있 는 오 류 를 잡 습 니 다. 원본 Observable 에 이상 이 발생 하면 계속 발사 치 를 정지 합 니 다.
let r$ = Rx.Observable.create(( observer) => {
    observer.next( 1 );
    observer.error( 'hello' );
    observer.next( 2 );
}).catch( err => console.log( err ))

r$.subscribe( x => console.log( x ))

//   :1, 'hello'
//    :2


retry
원본 Observable 이 이상 을 던 졌 을 때 원본 Observable 을 다시 실행 하고 매개 변수 설정 에 따라 다시 실행 할 수 있 습 니 다.
let r$ = Rx.Observable.create(( observer) => {
    observer.next( 1 );
    observer.next( 2 );
    observer.error( 'hello' );
}).retry( 2 )

r$.subscribe( x => console.log( x ))
//    :1,2
//    :1,2, 1,2        2 


3. retryWhen
     조건 치 를 만족 시 키 면 원본 Observable 을 계속 다시 실행 합 니 다.
this.http.get( url,options )
    .retryWhen(( errors ) => {
        return errors
            .mergeMap((error) => (error.status === 429) ? Observable.throw(error) : Observable.of(error))
            .delay(1000)
            .take(2);
    })
    .catch((res) => this.handleError(res));

// angular2 http  


4. defaultIfEmpty
Observable 이 끝 났 을 때 아무런 값 도 발사 하지 않 았 다 면 이 작업 의 매개 변수 값 을 발사 합 니 다.
Rx.Observable.empty( )
    .defaultIfEmpty( 42 )
    .subscribe( x => console.log( x ))

//    42

모두
Observable 이 발사 하 는 모든 값 이 조건 에 부합 되면 true 로 돌아 가 고 그렇지 않 으 면 false 로 돌아 갑 니 다. 
Rx.Observable.of( 1, 2, 3, 4 )
    .every( x => x < 5 )
    .subscribe( x => console.log( x ))
//   :true

여섯, find
Observable 이 발사 한 첫 번 째 조건 에 맞 는 항목 을 되 돌려 줍 니 다.
Rx.Observable.of( 1, 2, 3, 4, 5, 15 )
    .find( x => x % 5 === 0 )
    .subscribe( x => console.log( x ))
//   :5

7. findIndex
Observable 이 발사 한 첫 번 째 조건 에 맞 는 항목 의 하 표를 되 돌려 줍 니 다.
Rx.Observable.of(  1, 2, 3, 4, 5 )
    .findIndex( x => x % 5 === 0 )
    .subscribe( x => console.log( x ))
//   :4

8. isEmpty
Observable 이 비어 있 는 지 판단 하면 true 로 돌아 갑 니 다. 그렇지 않 으 면 false 로 돌아 갑 니 다.
Rx.Observable.empty( )
    .isEmpty(  )
    .subscribe( x => console.log( x ))
//   :true

아홉
Observable 이 발사 치 를 정지 할 때 Observable 이 발사 한 항목 의 개 수 를 되 돌려 줍 니 다.
Rx.Observable.of( 1,2,3,4 )
    .count(  )
    .subscribe( x => console.log( x ))
//   :4

최대
Observable 이 발사 치 를 정지 할 때 Observable 이 발사 한 최대 수치 항목 의 값 을 되 돌려 줍 니 다.
Rx.Observable.of( 1,2,100,3,4 )
    .max(  )
    .subscribe( x => console.log( x ))
//   :100

11. min
      Observable 이 발사 치 를 정지 할 때 Observable 이 발사 한 최소 수치 항목 의 값 을 되 돌려 줍 니 다.
Rx.Observable.of( 100,1,2,3,4 )
    .min(  )
    .subscribe( x => console.log( x ))
//   :1

12 、 reduce
Observable 이 발사 한 시퀀스 에 대해 reduce 중첩 작업 을 진행 합 니 다.
Rx.Observable.of( 1,2,3,4,5 )
    .reduce(( pre , cur) => pre + cur, 100)
    .subscribe( x => console.log( x ))

//   :115

좋은 웹페이지 즐겨찾기