TypeScript RXJS

by black strings

HTML

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/bundles/rxjs.umd.min.js"></script>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

TypeScript

// Access RxJS from the global `rxjs` object
const { fromEvent, take, takeUntil, delay, merge, throttleTime, debounceTime, timeout, timer
Subject, Observable } = rxjs;

const btnT0 = () => {
  const btn = document.createElement("button");
  btn.textContent = "Click Me!";
  document.body.appendChild(btn);

  // RxJS observable for button clicks
  fromEvent(btn, "click").pipe(timeout(5000)).subscribe(() => {
    console.log("Button clicked!");
  });
}
//btnT0();


const subT0 = () => {
  const sub: Subject<void> = new Subject<void>();
  const obs: Observable<void> = sub.asObservable();
  obs.pipe(timeout(1000)).subscribe({
  	next: () => console.log('subT0');
  });
  sub.next();
  sub.next();
  sub.complete();
  sub.next();
}
//subT0();


const obsT0 = () => {
	
  // create obs
	const obs: Observable<number> = new Observable<number>((subscriber) => {
  	const rand = Math.floor(Math.random() * 100 + 1);
    subscriber.next(rand);
    
  });
  
  // subscribe to trigger the function
  obs.pipe(take(1)).subscribe({
  	next: (val) => console.log(val)
  });
}
//obsT0();