0

オブザーバブルのパイプについて質問があります

次のコードがあるとします。

const skip$ = of(4);
const length$ = of(24);
const schoolId$ = of(1);

const source = combineLatest(skip$, length$, schoolId$).pipe(
  map(([skip, length]) => `skip: ${skip}, length: ${length}`),
  map(text => text ) // I need now schoolId, how can i get
);

2 番目のマップでは、schoolId が必要です。これを行わずにschoolIdを取得するにはどうすればよいですか:

const source = combineLatest(skip$, length$, schoolId$).pipe(
  map(([skip, length, schoolId]) => ({text: `skip: ${skip}, length: ${length}`, schoolId})),
  map(text => `${text.text}, schoolId: ${text.schoolId}` )
);

ここで、試してみるスタックブリッツがあります

4

1 に答える 1

3

すべての ReactiveX と同様に、多くのオプションがあります。おそらく、あなたが今持っているものに最も近いのはwithLatestFromを使用することでしょう...

const source = combineLatest(skip$, length$).pipe(
  map(([skip, length]) => (`skip: ${skip}, length: ${length}`)),
  withLatestFrom(schoolId$),
  map(([text, schoolId]) => `${text}, schoolId: ${schoolId}` )
);
于 2020-01-23T14:51:41.480 に答える