Releases: fedeAlterio/R3Async
Releases · fedeAlterio/R3Async
v0.0.5
Stateless Subjects
- StatelessSubject - Forgets completion when all observers unsubscribe
- StatelessBehaviorSubject - Resets to initial value when all observers unsubscribe
Multicasting Operators
- Multicast - Share a single subscription using a custom subject
- Publish - Convenient multicasting with Subject or BehaviorSubject
- StatelessPublish - Multicasting with StatelessSubjects
- RefCount - Auto-connect/disconnect based on subscriber count
####Others
- Finally renamed OnDispose
Stateless subjects solve the common Publish().RefCount() gotcha where completed observables can't be reused (see this StackOverflow discussion). With stateless subjects, the observable automatically resets when all observers unsubscribe, making it truly reusable for multiple subscription cycles.
v0.0.4
Release Notes
New Features
BehaviorSubject
- Added
Subject.CreateBehavior<T>()factory method for creating behavior subjects - BehaviorSubjects cache the latest value and immediately emit it to new subscribers
- Supports both
SerialandConcurrentpublishing options viaBehaviorSubjectCreationOptions
AsyncContext
- Added
AsyncContextas a union type that can represent eitherSynchronizationContextorTaskScheduler - Provides unified abstraction for controlling async context across operators (ObserveOn)
ObserveOn Operator
- Added
ObserveOn()operator to switch async context for downstream observers - Accepts an
AsyncContextas "scheduler". AsyncContext means either a SynchronizationContext or a TaskScheduler
Yield Operator
- Added
Yield()operator to introduce asynchronous yield points in the observable pipeline - Useful to force the producer thread to return on a sync chain
CombineLatest Operator
- Added
CombineLatest()operator for combining multiple observables - Emits whenever any source observable produces a value, combining it with the latest values from other sources
- Supports combining 2-8 observables with strongly-typed tuple results
Bug Fixes
CreateAsBackgroundJob
- Fixed
CreateAsBackgroundJob()to respect the subscription's async context when noTaskScheduleris specified - Previously incorrectly used
TaskScheduler.Defaultby default - Now properly yields on the subscription's async context, allowing context-aware execution
v0.0.3
Full Changelog: v0.0.2...v0.0.3
v0.0.2
fixed release.yml