Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save uzbekdev1/6d9160e9152560424ddbf5ddd00e4549 to your computer and use it in GitHub Desktop.
Save uzbekdev1/6d9160e9152560424ddbf5ddd00e4549 to your computer and use it in GitHub Desktop.
function subsequent<T>(
count: number,
operator: (source: Observable<T>) => Observable<T>
): (source: Observable<T>) => Observable<T> {
return (source: Observable<T>) => new Observable<T>(observer => {
const published = source.pipe(publish()) as ConnectableObservable<T>;
const concatenated = concat(
published.pipe(take(count)),
published.pipe(operator)
);
const subscription = concatenated.subscribe(observer);
subscription.add(published.connect());
return subscription;
}
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment