Skip to content

Instantly share code, notes, and snippets.

@dontpaniclabsgists
Created June 14, 2024 16:21
Show Gist options
  • Save dontpaniclabsgists/428ad55744d3d0c08a374dd7b8598c68 to your computer and use it in GitHub Desktop.
Save dontpaniclabsgists/428ad55744d3d0c08a374dd7b8598c68 to your computer and use it in GitHub Desktop.
import { tap, of, map, BehaviorSubject, Observable, filter, delay } from 'rxjs';
import { mergeAll } from 'rxjs/operators';
const queue$ = new BehaviorSubject<Observable<number> | undefined>(undefined);
queue$
.pipe(
filter((request) => request !== undefined),
map((request) => request!),
mergeAll(2)
)
.subscribe();
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].forEach((n) => {
const request$ = of(n).pipe(
delay(2000),
tap((n) => console.log(new Date().toLocaleTimeString() + ': ' + n))
);
queue$.next(request$);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment