반응형
관측 가능한 구역으로 이동.js
각진 곳에 위치할 수 있는 GPS 플러그인이 있어따라서 변화는 각도에 의해 감지되지 않고 뷰가 동일한 값으로 고정된다.
물론 나는 관제사로부터 관찰할 수 있는 이 글을 구독하고 그런 일을 할 수 있었다.
$mySourceOutOfZone.subscribe((value)=>{
this.zone.run(() => {
this.value = value;
});
})
그리고 이 뷰는 다음과 같은 값을 사용할 것이다.
<span>{{value}}</span>
하지만 나는 콘트롤러에 가입하지 않아도 되고 명령형 방식을 사용하지 않았으면 좋겠어.
어떻게 내가 이것을 관찰할 수 있는 각 영역 안에서 달릴 수 있을까?
RxJs 6+를 사용하는 경우, 사용자 정의 파이프 연산자는 관찰 가능한 동작을 다음 중 하나로 포장할 수 있다.zone.run()
지정된 구역에 대해
import { Observable, OperatorFunction } from 'rxjs';
import { NgZone } from '@angular/core';
export function runInZone<T>(zone: NgZone): OperatorFunction<T, T> {
return (source) => {
return new Observable(observer => {
const onNext = (value: T) => zone.run(() => observer.next(value));
const onError = (e: any) => zone.run(() => observer.error(e));
const onComplete = () => zone.run(() => observer.complete());
return source.subscribe(onNext, onError, onComplete);
});
};
}
그러면 운영자는 관찰 가능한 영역에 추가될 수 있으며, 사용자는 구역 컨텍스트를 변경할 시기를 명시적으로 알 수 있다.
return exampleObservable.pipe(
runInZone(this.zone)
);
다음과 같이 rxjs 스트림에 영역을 바인딩할 수 있다.
.enterZone(this.ngZone)
또는 파이프 연산자 사용:
.pipe(enterZone(this.ngZone))
이 패치를 사용해 볼 수도 있다.내부에 이 줄 추가polyfills.ts
수입후zone.js
.
import `zone.js/dist/zone-patch-rxjs`;
그렇게subscription callback
부르면 구역에서 달릴 거야.subscribe
.
참조URL: https://stackoverflow.com/questions/50928645/running-an-observable-into-a-zone-js
반응형
'IT이야기' 카테고리의 다른 글
도커가 설정한 반응 환경 변수 읽기 (0) | 2022.03.11 |
---|---|
Vue.js: 문이 참인지 확인란 설정 (0) | 2022.03.11 |
reactJS this.state null (0) | 2022.03.11 |
리액션 후크 사용 방법내 경우 한 번만 효과? (0) | 2022.03.11 |
vue js html로 지정된 형식으로 데이터를 여러 번 선택하고 전달할 수 있는 방법은? (0) | 2022.03.11 |