Angular에서 .subscribe는 무엇입니까?
앵귤러-투어-오브-히어로즈 앱을 진행하고 있는데 라우팅에서 .subscribe 메서드를 접했습니다.여기서 무슨 일이 일어나고 있는지 누가 설명해 줄 수 있나요?
앱 링크: https://embed.plnkr.co/ ?show=http://preview
hero-detail.component.ts 파일 안에 있습니다.
ngOnInit(): void {
this.route.paramMap
.switchMap((params: ParamMap) => this.heroService.getHero(+params.get('id')))
.subscribe(hero => this.hero = hero);
}
.subscribe
Angular2가 아닙니다.
Angular가 내부적으로 사용하고 있는 라이브러리에서 제공되는 방법입니다.
뉴스레터를 구독하는 자신을 상상할 수 있다면, 새로운 뉴스레터가 있을 때마다 그들은 그것을 여러분의 집으로 보낼 것입니다(구독 내의 방법이 호출됩니다).
Observable
rxjs
라이브러리)
든모.AJAX
은 Angular 호이사중입니다용의출을 .rxjs
그것들 중 를 들어, 예를 들어, 그적으중사하면그용합이사, 메드야용니다해름을소당신은려로부하내나리를고것들▁name▁method▁e▁intern합,다니▁theg야▁you,'▁any사▁them▁of▁useally▁and▁in▁got▁to해용ve. 예:get
하세요. 구독하기 때문입니다. 왜냐하면.get
및 품반Observable
.
이 한이코를작성할때드또때▁also.<button (click)="doSomething()">
는 각가사중입다니용도를 합니다.Observables
내부적으로 그리고 당신을 그 사건의 근원에 가입시킵니다, 이 경우는.click
이벤트
에 대한 우리의 비유로 돌아가겠습니다.Observables
그리고.newsletter stores
구독한 후, 새로운 잡지가 있는 한, 그들은 당신이 가지 않는 한, 그리고 당신이 가야 하는 구독 번호나 ID를 기억해야 하는 그들로부터 그것을 보낼 것입니다.rxjs
과 같습니다.
let subscription = magazineStore.getMagazines().subscribe(
(newMagazine)=>{
console.log('newMagazine',newMagazine);
});
그리고 더 이상 잡지를 받고 싶지 않을 때:
subscription.unsubscribe();
또한, 그것은 마찬가지입니다.
this.route.paramMap
그것은 돌아오는 것입니다.Observable
그리고 구독을 하게 됩니다.
인 견해는 저의개견해는입니다.rxjs
자바스크립트 세계에 가져온 가장 위대한 것들 중 하나였고 Angular에서는 훨씬 더 좋습니다.
150개가 있습니다.rxjs
메소드(methods)와합니다.lodash
methods 방법을 합니다.switchMap
Angular In Angular(θθ Angular-6).subscribe()
는 관찰 가능한 유형의 메서드입니다.관찰 가능 유형은 관찰 가능 유형에 가입한 다양한 구성 요소 또는 서비스에 데이터를 비동기식 또는 동기식으로 스트리밍하는 유틸리티입니다.
관찰 가능한 항목은 약속 체인에 대한 구현/추상이며 제안되고 매우 지원되는 기능으로서 ES7의 일부가 될 것입니다.Angular에서는 rxjs가 개발 종속성이기 때문에 내부적으로 사용됩니다.
관찰 가능한 것 자체는 소스에서 나오는 데이터 스트림으로 생각할 수 있습니다. Angular에서 이 소스는 API 끝점, 서비스, 데이터베이스 또는 다른 관찰 가능한 것입니다.하지만 그 힘은 단 하나의 반응도 기대하지 않는다는 것입니다.반환되는 하나 이상의 값을 가질 수 있습니다.
여기에서 관찰 가능한/확인 가능한 문서를 위한 rxjs 링크: https://rxjs-dev.firebaseapp.com/api/index/class/Observable#subscribe-
Subscribe은 세 가지 메서드를 매개 변수로 사용합니다.
- 다음: 관찰 가능한 각 항목에 대해 이 기능을 수행합니다.
- 오류: 스트림 어딘가에서 오류가 발견되면 다음 방법을 수행합니다.
- 완료:스트림에서 모든 항목이 완료되면 다음 방법을 수행합니다.
이들 각각에는 연산자라는 다른 유틸리티를 결과에 연결(또는 연결)하여 형태를 변경하거나 계층화된 논리를 수행할 수 있는 잠재적인 요소가 있습니다.
위의 간단한 예에서:
.subscribe(hero => this.hero = hero);
기본적으로 이 관찰 가능한 것에 대해 말하는 영웅을 방출하고 설정합니다.this.hero
.
이 답변을 추가하여 문서와 제가 이해한 내용을 바탕으로 관찰 가능한 항목에 더 많은 컨텍스트를 제공합니다.
헤드라인 등록은 일회용 리소스(일반적으로 관찰 가능한 리소스)를 나타내는 개체입니다.서브스크립션에는 인수를 사용하지 않고 서브스크립션이 보유한 리소스만 폐기하는 중요한 방법이 있습니다.
import { interval } from 'rxjs';
const observable = interval(1000);
const subscription = observable.subscribe(a=> console.log(a));
/** This cancels the ongoing Observable execution which
was started by calling subscribe with an Observer.*/
subscription.unsubscribe();
서브스크립션에는 기본적으로 리소스를 릴리스하거나 관찰 가능한 실행을 취소하는 구독 취소() 기능이 있습니다.
import { interval } from 'rxjs';
const observable1 = interval(400);
const observable2 = interval(300);
const subscription = observable1.subscribe(x => console.log('first: ' + x));
const childSubscription = observable2.subscribe(x => console.log('second: ' + x));
subscription.add(childSubscription);
setTimeout(() => {
// It unsubscribes BOTH subscription and childSubscription
subscription.unsubscribe();
}, 1000);
공식 문서에 따르면 Angular는 당신을 위해 구독을 취소해야 하지만, 분명히 버그가 있습니다.
subscribe() - 관찰 가능한 항목의 실행을 호출하고 해당 항목이 내보낼 알림에 대한 관찰 가능한 처리기를 등록합니다. - 관찰 가능한 항목 - 시간 경과에 따른 값 집합의 표현입니다.
언급URL : https://stackoverflow.com/questions/44921788/what-is-subscribe-in-angular
'source' 카테고리의 다른 글
기존 스레드 풀 C 구현 (0) | 2023.08.19 |
---|---|
Linux에서 Windows 컨테이너를 호스팅할 수 있습니까? (0) | 2023.08.19 |
Logcat에서 안무가 메시지의 의미 (0) | 2023.08.19 |
javascript Object.defineProperty를 사용하는 방법 (0) | 2023.08.19 |
Android:Enum을 번들에 넣는 방법? (0) | 2023.08.19 |