RxJS Interop
SkillMonitoring & opsBridge Observables and Signals using toSignal and toObservable in Angular. Use when converting between RxJS Observables and Angular Signals.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the RxJS Interop skill
What this skill tells your AI
The instructions your AI receives, as published by hoangnguyen0403/agent-skills-standard in skills/angular/angular-rxjs-interop/SKILL.md and read by ahel’s review.
Priority: P1 (HIGH)
Principles
- Async to Sync: Use toSignal(observable$, { initialValue: defaultValue }) from @angular/core/rxjs-interop to convert Observables (HTTP, Events) to Signals for template rendering. Call in injection context (class field or constructor). toSignal auto-unsubscribes on component destroy. Provide initialValue to avoid
undefined. - Sync to Async: Use toObservable(this.query) when you need RxJS operators (debounceTime, switchMap, distinctUntilChanged) on Signal. Then wrap back with toSignal() if rendering.
- Auto-Unsubscribe:
toSignalautomatically unsubscribes. - Cleanup: Use takeUntilDestroyed() for manual subscriptions in injection contexts. For use outside, inject(DestroyRef) and call
takeUntilDestroyed(destroyRef).
Guidelines
- HTTP Requests:
- GET:
http.get<User[]>(...).pipe(catchError(() => of([])))->toSignal(..., { initialValue: [] }). Use in templates as {{ users() }}. - Consider httpResource() for simpler reactive HTTP in newer versions.
- POST/PUT: Trigger explicit subscribe() or lastValueFrom().
- Race Conditions: Handle async loading states.
toSignalrequiresinitialValueor handlesundefined.
Anti-Patterns
- No manual subscribe in templates: Use
toSignal()for Observables rendered in templates. - No BehaviorSubject for state: Replace with
signal()+toObservable()for RxJS interop. - No global takeUntil: Use
takeUntilDestroyed()scoped to injection context. Never use global Subject with takeUntil — it leaks if Subject never completed.
References
Canonical response anchors
When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:
- toSignal()
- {{ users() }}
Signals
- GitHub stars
- 565
- Forks
- 163
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
angular-rxjs-interop- Source
- github.com/hoangnguyen0403/agent-skills-standard