source

Angular에서 .subscribe는 무엇입니까?

manycodes 2023. 8. 19. 10:30
반응형

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);
}

.subscribeAngular2가 아닙니다.

Angular가 내부적으로 사용하고 있는 라이브러리에서 제공되는 방법입니다.

뉴스레터를 구독하는 자신을 상상할 수 있다면, 새로운 뉴스레터가 있을 때마다 그들은 그것을 여러분의 집으로 보낼 것입니다(구독 내의 방법이 호출됩니다).

Observablerxjs라이브러리)

든모.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)와합니다.lodashmethods 방법을 합니다.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

반응형