반응형
관측 가능한 .do() 연산자(rxjs)의 사용 사례
컨텍스트:
저는 각진 2 앱(파이어베이스 API 포함)을 만들고 있습니다.Angular Fire 모듈을 사용하고 있습니다.어떻게 섞을 수 있는지 궁금해서요.canActivate
Angular Fire Auth Observable을 사용하는 방법을 찾았습니다.답은 다음을 만드는 것입니다.canActivate
메소드가 반환합니다.Observable<boolean>
:
canActivate(): Observable<boolean> {
return this.auth
.take(1)
.map((authState: FirebaseAuthState) => !!authState)
.do(authenticated => {
if (!authenticated) this.router.navigate(['/login']);
});
}
내가 관찰 가능한 것을 보는 것입니다.do
교환원, 그리고 나는 그것이 실제로 무엇을 하는지 이해할 수 없습니다.공식적인 의사는 저를 도와주지 않았고, 저는 괜찮은 사례를 찾지 못했습니다.
질문:.
누가 여기에 몇 가지 예를 들어줄 수 있습니까?.do()
사용법?그리고 다른 점은.subscribe()
?
갱신하다
이제는pipe( tap(...), )
대신에do()
원래의
.do()
각 이벤트에 대해 코드를 실행하는 것입니다.에의 차이점.map()
즉, 의 반환 값입니다..do()
무시되며 가입자가 받는 값은 변경되지 않습니다.
이제는pipe( tap(...), )
대신에do()
const source = of(1, 2, 3, 4);
source.pipe(
tap(val => console.log('I am tap: ',val)),
filter(val => val > 2),
map(val => val + 1)).subscribe((val) => {
console.log('I am subscriber value after filtering: ', val);
});
출력:
I am tap: 1
I am tap: 2
I am tap: 3
I am subscriber value after filtering: 4
I am tap: 4
I am subscriber value after filtering: 5
*탭 오퍼레이터는 아무것도 수정하지 않습니다, 단지 스트림을 보기 위한 것이라고 할 수 있습니다.
언급URL : https://stackoverflow.com/questions/40957381/use-case-of-observable-do-operator-rxjs
반응형
'programing' 카테고리의 다른 글
이것을 Vuex 스토어에서 사용할 수 있습니까? (0) | 2023.06.17 |
---|---|
UNION을 사용하여 여러 테이블에서 조건에 따라 테이블을 선택하시겠습니까? (0) | 2023.06.17 |
엑셀 매크로 내에서 자바스크립트를 어떻게 사용할 수 있습니까? (0) | 2023.06.17 |
엑셀 없이 델파이에서 엑셀로 내보내기 (0) | 2023.06.17 |
Excel VBA 코드의 XMLHttp 응답에서 JSON 개체 처리 (0) | 2023.06.12 |