반응형
일회성 구독 만들기
구독 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
반응형
'IT' 카테고리의 다른 글
변수 인 테이블 이름 (0) | 2020.06.15 |
---|---|
Visual Studio에서 둘 이상의 프로젝트 / 솔루션보기 (0) | 2020.06.15 |
존재하지 않고 새 줄을 추가하는 경우 .txt 파일을 만듭니다. (0) | 2020.06.15 |
데몬 프로세스로 PHP 스크립트를 실행 (0) | 2020.06.14 |
MySQL 8.0-클라이언트는 서버가 요청한 인증 프로토콜을 지원하지 않습니다. (0) | 2020.06.14 |