>

RxJ에 익숙하지 않고 일반적으로 각도가 있으며 다음 코드를 단순화하는 방법이 있는지 알고 싶지만 여전히 똑같은 일을하지만 읽기가 더 쉽습니까?/p>

private configureDS() {
let params$ = this.params$.pipe(debounceTime(300));
this.user$
  .pipe(
    mergeMap(user =>
      from(this.loadPosts(user)).pipe(map(posts => ({ user, posts })))
    ),
    combineLatest(this.dates$, params$),
    switchMap(([{ user, posts }, dates, params]) =>
      from(
        this.loadData(dates.date, dates.endDate, user, posts, params)
      ).pipe(map(data => ({ dates, data })))
    )
  )
  .subscribe(({ dates, data }) => this.displayData(data, dates));
this.paramsSubject.next(this.params);
}

  • 답변 # 1

    가독성을 약간 향상시키기 위해 이와 같은 것을 시도해 볼 수 있습니다

    let params$ = this.params$.pipe(debounceTime(300));
    let userPosts$ = this.user$
      .pipe(
        mergeMap(user =>
          from(this.loadPosts(user)).pipe(map(posts => ({ user, posts })))
        ),
      );
    combineLatest(userPosts$, this.dates$, params$)
    .pipe(
        switchMap(([{ user, posts }, dates, params]) =>
          from(
            this.loadData(dates.date, dates.endDate, user, posts, params)
          ).pipe(map(data => ({ dates, data })))
        )
    )
    .subscribe(({ dates, data }) => this.displayData(data, dates));
    
    

    이것은 기본적으로 combineLatest 를 사용합니다.   combineLatest 대신 기능  연산자 (RxJs 6부터 사용되지 않음)

    아직 나에게 분명하지 않은 것이 있습니다. 예를 들어, 왜 from 를 사용 하는가   this.loadPosts(user) 기능 ? 보통 from   iterable 를 걸립니다   iterable 의 각 요소마다 방출되는 스트림을 입력으로 반환합니다.  - loadPosts 입니다   iterable 를 반환 ?

    이 질문은 체인의 디자인을 조금만 검토하면 가독성이 향상 될 수 있기 때문입니다.

  • 이전 javascript - 변수 입력이 무효화되고 charAt []가 깨짐
  • 다음 python - spacy를 이용한 의존성 파싱