MCPcopy
hub / github.com/statelyai/xstate / subscribe

Method subscribe

packages/core/src/createActor.ts:421–466  ·  view source on GitHub ↗
(
    nextListenerOrObserver?:
      | ((snapshot: SnapshotFrom<TLogic>) => void)
      | Observer<SnapshotFrom<TLogic>>,
    errorListener?: (error: any) => void,
    completeListener?: () => void
  )

Source from the content-addressed store, hash-verified

419 completeListener?: () => void
420 ): Subscription;
421 public subscribe(
422 nextListenerOrObserver?:
423 | ((snapshot: SnapshotFrom<TLogic>) => void)
424 | Observer<SnapshotFrom<TLogic>>,
425 errorListener?: (error: any) => void,
426 completeListener?: () => void
427 ): Subscription {
428 const observer = toObserver(
429 nextListenerOrObserver,
430 errorListener,
431 completeListener
432 );
433
434 if (this._processingStatus !== ProcessingStatus.Stopped) {
435 this.observers.add(observer);
436 } else {
437 switch ((this._snapshot as any).status) {
438 case 'done':
439 try {
440 observer.complete?.();
441 } catch (err) {
442 reportUnhandledError(err);
443 }
444 break;
445 case 'error': {
446 const err = (this._snapshot as any).error;
447 if (!observer.error) {
448 reportUnhandledError(err);
449 } else {
450 try {
451 observer.error(err);
452 } catch (err) {
453 reportUnhandledError(err);
454 }
455 }
456 break;
457 }
458 }
459 }
460
461 return {
462 unsubscribe: () => {
463 this.observers.delete(observer);
464 }
465 };
466 }
467
468 public on<TType extends EmittedFrom<TLogic>['type'] | '*'>(
469 type: TType,

Callers 2

selectMethod · 0.95
startMethod · 0.95

Calls 2

toObserverFunction · 0.90
reportUnhandledErrorFunction · 0.90

Tested by

no test coverage detected