次の例を検討してください。
import { fromEvent } from 'rxjs';
import { switchMap, tap } from 'rxjs/operators';
import { ajax } from 'rxjs/ajax';
const httpCall$ = ajax.getJSON('https://rickandmortyapi.com/api/character/');
const click$ = fromEvent(document, 'click');
const switchMapExample$ = click$.pipe(
tap(() => console.log('inside switchMap - click happend')),
switchMap(() => {
console.log('inside switchMap - start http request');
return httpCall$.pipe(
tap((val) => console.log('inside switchMap - http response ', val))
);
}
));
switchMapExample$.subscribe((val) => {
console.table(val); // Is There a way to log only the latest value ?
});
ドキュメント内をクリックすると、新しいリクエストが処理されます。
ここでブリッツを参照してください: rxjs-about-switchmap
allow を使用SwitchMap
して前のリクエストをキャンセルします。最新のリクエスト応答のみを購読するにはどうすればよいですか?