Angular 튜토리얼의 파이프 및 탭 방법은 무엇입니까? [닫은]


129

https://angular.io 에서 튜토리얼을 따르고 있는데 문서를 찾는 데 문제가 있습니다. 특히 방법 pipetap. https://angular.io 또는 http://reactivex.io/rxjs/ 에서 아무것도 찾을 수 없습니다 .

나의 이해는 그 pipetap의 두 방법입니다 ObservableRxJS에서 수입되고, 맞습니까? 그들은 무엇을해야합니까?

이 메서드는 Angular의 일부입니까? 이 두 가지 방법은 무엇을합니까?


56
사용자가 적절한 질문을하고 적절한 답변을받을 때 이상하게 느껴지지만 모드에 대해 OP가 무엇을 요구하는지 전혀 알 수 없습니다. D-도대체이 "토픽에서 벗어난"이유는 무엇입니까?
Paul Strupeikis

답변:


108

당신이 옳습니다. 문서에는 그러한 방법이 없습니다. 그러나 rxjs 저장소를 파헤 쳤을 때 (여기에 붙여 넣기에는 너무 깁니다) 및 파이프 연산자에 대한 멋진 댓글을 발견했습니다 .

  /**
   * Used to stitch together functional operators into a chain.
   * @method pipe
   * @return {Observable} the Observable result of all of the operators having
   * been called in the order they were passed in.
   *
   * @example
   *
   * import { map, filter, scan } from 'rxjs/operators';
   *
   * Rx.Observable.interval(1000)
   *   .pipe(
   *     filter(x => x % 2 === 0),
   *     map(x => x + x),
   *     scan((acc, x) => acc + x)
   *   )
   *   .subscribe(x => console.log(x))
   */

간단히 말해서 :

파이프 : 기능 연산자를 하나의 체인으로 연결하는 데 사용됩니다. 우리가 할 수 있기 전에 observable.filter().map().scan()모든 RxJS 연산자는 Observable의 메소드가 아니라 독립형 함수이기 때문에 pipe()이러한 연산자의 체인을 만들어야합니다 (위의 예 참조).

: 관찰 된 데이터로 부작용을 수행 할 수 있지만 어떤 식 으로든 스트림을 수정하지 않습니다 . 이전에는 do(). 시간이 지남에 따라 배열 한 다음이었다 관찰 할 수있는 것처럼 당신은 생각할 수 tap()에 해당하는 것이다 Array.forEach().


4
답변과 링크에 감사드립니다. 내 문제의 일부는 Angular를 처음 사용하고 어떤 메서드가 핵심 JavaScript 또는 Node.js 또는 RxJS 또는 Angular의 일부인지 잘 모르겠다는 것입니다. 귀하의 답변은이를 명확히하는 데 도움이되었습니다. 감사합니다.
Ben Rubin

3
@BenRubin 도구를 배우기 전에 네이티브 JS를 제대로 배우는 것으로 시작하는 것이 좋습니다. 도구와 도구가 실제로 수행하는 작업을 훨씬 더 쉽게 이해할 수 있습니다 (그리고 도구와 기본 부분이 무엇인지 알 수 있음).
매그너스 에릭손

20
5.5 이후 do로 이름이 변경된 pipeable (한때 lettable이라고 알려짐) 연산자가 도입 되었습니다 tap. 간단히 말해서 엉망입니다. github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md
Luca

3
filter작동 방식 Array.filter-규칙을 충족하는 값만 유지합니다 (이 경우 2로 나눌 수 있음). map(다시 마찬가지로 Array.map) 모든 값을 변경합니다 (이 경우 자체에 추가합니다). scan멋진 설명은 여기에서 가장 재미 있고 : learnrxjs.io/operators/transformation/scan.html
다니엘 Kucal

1
스캔이 줄어든 것 같습니다
latj
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.