Skip to content

Instantly share code, notes, and snippets.

@cartant
Last active January 15, 2020 09:53
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cartant/c6784292ea3ca8ad1b6a94e8026fa434 to your computer and use it in GitHub Desktop.
Save cartant/c6784292ea3ca8ad1b6a94e8026fa434 to your computer and use it in GitHub Desktop.
import { defer, Observable } from "rxjs";
import { finalize, tap } from "rxjs/operators";
export const log = <T>(source: Observable<T>, name: string) => defer(() => {
console.log(`${name}: subscribed`);
return source.pipe(
tap({
next: value => console.log(`${name}: ${value}`),
complete: () => console.log(`${name}: complete`)
}),
finalize(() => console.log(`${name}: unsubscribed`))
);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment