IT

일회성 구독 만들기

lottoking 2020. 6. 15. 08:02
반응형

일회성 구독 만들기


구독 Observable이 처음 호출 될 때 즉시 처리 되는 구독을 만들어야합니다 .

다음과 같은 것이 있습니까?

observable.subscribeOnce(func);

사용 사례, 빠른 경로 처리기에서 구독을 만들고 구독이 요청 당 여러 번 호출됩니다.


당신이 필요로하는 일에 대해 확실하지 100 % 당신이 첫 번째 값을 관찰하려면,하지만, 다음 중 하나를 사용 first()하거나 take(1):

observable.first().subscribe(func);

참고 : .take(1).first()모두 탈퇴가 자동으로 조건이 충족 될 때

RxJS 5.5 이상에서 업데이트

Coderer의 코멘트에서 .

import { first } from 'rxjs/operators'

observable
  .pipe(first())
  .subscribe(func);

이유는 다음과 같습니다


RxJS에는 내가 본 최고의 문서 중 일부가 있습니다. 벨로우즈 링크를 따라 가면 사용자에게 매우 유용한 테이블 매핑 사용 사례로 이동합니다. 예를 들어, 아래의 유스 케이스 "나는 첫 번째 값을 원하는 것은"세 사업자는 다음과 같습니다 first, firstOrDefault그리고 sample.

관찰 가능한 시퀀스가 ​​통지없이 완료되면 운영자는 first가입자에게 오류를 알리는 반면 firstOrDefault운영자는 가입자에게 기본값을 제공합니다.

운영자 유스 케이스 조회


보충 브랜든의 대답 @ , 사용 first()또는 같은이 업데이트를 위해 필수적입니다 BehaviorSubject그 기반으로 Observable. 예를 들어 (평가되지 않음) :

var subject = new BehaviorSubject({1:'apple',2:'banana'});
var observable = subject.asObservable();

observable
  .pipe(
    first(), // <-- Ensures no stack overflow
    flatMap(function(obj) {
      obj[3] = 'pear';
      return of(obj);
    })
  )
  .subscribe(function(obj) {
    subject.next(obj);
  });

참고 URL : https://stackoverflow.com/questions/28007777/create-one-time-subscription

반응형