import { Subject } from 'rxjs';import { ajax } from 'rxjs/ajax';import { map } from 'rxjs/operators';interface UserResponse { data: { id: number; email: string; first_name: string; last_name: string; avatar: string; };}const user = ajax .getJSON<UserResponse>('https://reqres.in/api/users/2') .pipe(map((response) => response.data));/** * Multiple Observers to a cold observable create multiple * independent executions of the observerable. * * Since our cold observable is performing a fetch request * if we look at the network tab in the developer tools we * will see multiple requests. */// const sub1 = user$.subscribe(console.log);// const sub2 = user$.subscribe(console.log);/** * Comment out the above code and use a Subject to multicast. */const userSubject = new Subject();const sub1 = userSubject.subscribe(console.log);const sub2 = userSubject.subscribe(console.log);// user.subscribe({// next: (user) => userSubject.next(user),// error: (e) => userSubject.error(e),// complete: () => userSubject.complete()// });user.subscribe(userSubject);