cc2cddbff23b75c8d9f70fbfffbc9fdccee35a602ac6aab4f0a38b87bb6875daed67cfae9145cf5e3c50d48677bff517d20cd84ca1c297886dd9f39dabaa46 692 B

12345678910111213141516171819202122
  1. import { Subscriber } from '../Subscriber';
  2. import { Subject } from '../Subject';
  3. /**
  4. * Determines whether the ErrorObserver is closed or stopped or has a
  5. * destination that is closed or stopped - in which case errors will
  6. * need to be reported via a different mechanism.
  7. * @param observer the observer
  8. */
  9. export function canReportError(observer: Subscriber<any> | Subject<any>): boolean {
  10. while (observer) {
  11. const { closed, destination, isStopped } = observer as any;
  12. if (closed || isStopped) {
  13. return false;
  14. } else if (destination && destination instanceof Subscriber) {
  15. observer = destination;
  16. } else {
  17. observer = null;
  18. }
  19. }
  20. return true;
  21. }