const {interval, take, share} = rxjs;

const source = interval(1000).pipe(take(5));

const shared = source.pipe(share());

shared.subscribe((v) =>
  document.body.insertAdjacentHTML("beforeend", `<div>Subscriber 1: ${v}</div>`)
);

setTimeout(() => {
  shared.subscribe((v) =>
    document.body.insertAdjacentHTML(
      "beforeend",
      `<div>Subscriber 2: ${v}</div>`
    )
  );
}, 2000);

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/rxjs/7.8.1/rxjs.umd.min.js