All the interesting stuff is in BaseObservable. This trait exists only as a sort of type alias for BaseObservable[Observable, A]. (I can't use an actual type alias for this due to an illegal cycle)
Attributes
- Companion
- object
- Graph
-
- Supertypes
- Known subtypes
-
trait EventStream[A]trait WritableStream[A]class MergeStream[A]class DebuggerStream[A]class DistinctStream[A]class DropStream[A]class FilterStream[A]class StreamFromSignal[A]class TakeStream[A]class DebounceStream[A]class DelayStream[A]class SyncDelayStream[A]class ThrottleStream[A]class CustomStreamSource[A]class EventBusStream[A]class ConcurrentStream[A]class SwitchSignalStream[A]class JsPromiseStream[A]class PeriodicStream[A]class AjaxStreamclass FetchStreamtrait Signal[A]trait WritableSignal[A]class DebuggerSignal[A]class DistinctSignal[A]class ObservedSignal[A]class SignalFromStream[A]class CustomSignalSource[A]class SwitchSignal[A]class Val[A]class JsPromiseSignal[A]trait StrictSignal[A]trait OwnedSignal[A]trait SyncObservable[A]trait CombineObservable[A]trait WritableObservable[A]trait CustomSource[A]Show all
Members list
Value members
Concrete methods
Trigger JS debugger for emitted events and errors if when
passes Note: for Signals this also triggers onStart (with the current value at the time)
Trigger JS debugger for emitted events and errors if when
passes Note: for Signals this also triggers onStart (with the current value at the time)
Attributes
Trigger JS debugger for emitted errors (but not events) if when
passes Note: for Signals this also triggers onStart (if current value is an error)
Trigger JS debugger for emitted errors (but not events) if when
passes Note: for Signals this also triggers onStart (if current value is an error)
Attributes
Trigger JS debugger for emitted events (but not errors) if when
passes Note: for Signals this also triggers onStart (if current value is not an error)
Trigger JS debugger for emitted events (but not errors) if when
passes Note: for Signals this also triggers onStart (if current value is not an error)
Attributes
Trigger JS debugger when the observable starts and stops
Trigger JS debugger when the observable starts and stops
Attributes
Trigger JS debugger when the observable starts
Trigger JS debugger when the observable starts
Attributes
Trigger JS debugger when the observable stops
Trigger JS debugger when the observable stops
Attributes
Log emitted events and errors if when
condition passes, using dom.console.log if useJsLogger
is true. Note: for Signals this also triggers on start (with the current value at the time)
Log emitted events and errors if when
condition passes, using dom.console.log if useJsLogger
is true. Note: for Signals this also triggers on start (with the current value at the time)
Attributes
Log emitted errors (but not regular events) if when
condition passes Note: for Signals this also triggers onStart (if current value is an error)
Log emitted errors (but not regular events) if when
condition passes Note: for Signals this also triggers onStart (if current value is an error)
Attributes
Log emitted events (but not errors) if when
condition passes, using dom.console.log if useJsLogger
is true. Note: for Signals this also triggers onStart (if current value is not an error)
Log emitted events (but not errors) if when
condition passes, using dom.console.log if useJsLogger
is true. Note: for Signals this also triggers onStart (if current value is not an error)
Attributes
Log when the observable starts and stops
Log when the observable starts and stops
Attributes
Log when the observable starts
Log when the observable starts
Attributes
Log when the observable stops
Log when the observable stops
Attributes
Execute fn on every emitted event or error Note: for Signals this also triggers onStart (with the current value at the time)
Execute fn on every emitted event or error Note: for Signals this also triggers onStart (with the current value at the time)
Attributes
Execute fn on every emitted error (but not regular events) Note: for Signals this also triggers onStart (if current value is an error)
Execute fn on every emitted error (but not regular events) Note: for Signals this also triggers onStart (if current value is an error)
Attributes
Execute fn on every emitted event (but not error) Note: for Signals this also triggers onStart (if current value is not an error)
Execute fn on every emitted event (but not error) Note: for Signals this also triggers onStart (if current value is not an error)
Attributes
Execute callbacks on when the observable starts and stops
Execute callbacks on when the observable starts and stops
Value parameters
- startFn
-
topoRank => ()
Attributes
Execute callbacks on when the observable starts
Execute callbacks on when the observable starts
Value parameters
- fn
-
topoRank => ()
Attributes
Execute callbacks on when the observable stops
Execute callbacks on when the observable stops
Attributes
Return the observable's topoRank. This does not affect the observable in any way.
Return the observable's topoRank. This does not affect the observable in any way.
Attributes
Create a new observable that listens to the original, and set the displayName of the new observable. This is different from setDisplayName
.
Create a new observable that listens to the original, and set the displayName of the new observable. This is different from setDisplayName
.
If you say stream.debugWithName("foo").debugLog()
, the displayName used by the logger will be "foo" verbatim, whereas if you say stream.setDisplayName("foo").debugLog()
, the logger's displayName will be "foo|Debug" – with a suffix – to differentiate it from the "foo" displayName of stream
itself.
Attributes
Inherited methods
Subscribe an external observer to this observable
Create a new observable that listens to this one and has a debugger attached.
Create a new observable that listens to this one and has a debugger attached.
Use the resulting observable in place of the original observable in your code. See docs for details.
There are more convenient methods available implicitly from DebuggableObservable and DebuggableSignal, such as debugLog(), debugSpyEvents(), etc.
Attributes
- Inherited from:
- BaseObservable
This is the method that subclasses override to preserve the user's ability to set custom display names.
This is the method that subclasses override to preserve the user's ability to set custom display names.
Attributes
- Inherited from:
- Named
Attributes
- Inherited from:
- Named
Distinct events (but keep all errors) by == (equals) comparison
Distinct events (but keep all errors) by == (equals) comparison
Attributes
- Inherited from:
- BaseObservable
Distinct events (but keep all errors) by matching key Note: key(event)
might be evaluated more than once for each event
Distinct events (but keep all errors) by matching key Note: key(event)
might be evaluated more than once for each event
Attributes
- Inherited from:
- BaseObservable
Distinct events (but keep all errors) using a comparison function
Distinct events (but keep all errors) using a comparison function
Attributes
- Inherited from:
- BaseObservable
Distinct events (but keep all errors) by reference equality (eq)
Distinct events (but keep all errors) by reference equality (eq)
Attributes
- Inherited from:
- BaseObservable
Distinct errors only (but keep all events) using a comparison function
Distinct errors only (but keep all events) using a comparison function
Attributes
- Inherited from:
- BaseObservable
Distinct all values (both events and errors) using a comparison function
Distinct all values (both events and errors) using a comparison function
Attributes
- Inherited from:
- BaseObservable
Airstream may internally use Scala library functions which use ==
or hashCode
for equality, for example List.contains. Comparing observables by structural equality pretty much never makes sense, yet it's not that hard to run into that, all you need is to create a case class
subclass, and the Scala compiler will generate a structural-equality equals
and hashCode
methods for you behind the scenes.
Airstream may internally use Scala library functions which use ==
or hashCode
for equality, for example List.contains. Comparing observables by structural equality pretty much never makes sense, yet it's not that hard to run into that, all you need is to create a case class
subclass, and the Scala compiler will generate a structural-equality equals
and hashCode
methods for you behind the scenes.
To prevent that, we make equals and hashCode methods final, using the default implementation (which is reference equality).
Attributes
- Definition Classes
-
BaseObservable -> Any
- Inherited from:
- BaseObservable
#WARNING: DO NOT USE THIS METHOD. See https://github.com/raquo/Airstream/#flattening-observables
#WARNING: DO NOT USE THIS METHOD. See https://github.com/raquo/Airstream/#flattening-observables
Attributes
- Inherited from:
- BaseObservable
Alias to flatMapSwitch(_ => s)
Shorthand for flatMapWithStatus(_ => innerStream)
.
Based on flatMapSwitch, but tracks the status of input and output to flatMap. See Status.
Based on flatMapSwitch, but tracks the status of input and output to flatMap. See Status.
Attributes
- Inherited from:
- BaseObservable
Create an external observer from a function and subscribe it to this observable.
Create an external observer from a function and subscribe it to this observable.
Note: since you won't have a reference to the observer, you will need to call Subscription.kill() to unsubscribe
Attributes
- Inherited from:
- BaseObservable
Force reference equality checks. See comment for equals
.
Force reference equality checks. See comment for equals
.
Attributes
- Definition Classes
-
BaseObservable -> Any
- Inherited from:
- BaseObservable
value
is passed by name, so it will be evaluated whenever the Observable fires. Use it to sample mutable values (e.g. myInput.ref.value in Laminar).
value
is passed by name, so it will be evaluated whenever the Observable fires. Use it to sample mutable values (e.g. myInput.ref.value in Laminar).
See also: mapToStrict
Value parameters
- value
-
Note: guarded against exceptions
Attributes
- Inherited from:
- BaseObservable
value
is evaluated strictly, only once, when this method is called.
value
is evaluated strictly, only once, when this method is called.
See also: mapTo
Attributes
- Inherited from:
- BaseObservable
Attributes
- Inherited from:
- BaseObservable
Attributes
- Inherited from:
- BaseObservable
Attributes
- Inherited from:
- BaseObservable
Convert this to an observable that emits Left(err) instead of erroring
Convert this to an observable that emits Left(err) instead of erroring
Attributes
- Inherited from:
- BaseObservable
Convert this to an observable that emits Failure(err) instead of erroring
Convert this to an observable that emits Failure(err) instead of erroring
Attributes
- Inherited from:
- BaseObservable
Set the display name for this instance (observable or observer).
Set the display name for this instance (observable or observer).
- This method modifies the instance and returns
this
. It does not create a new instance. - New name you set will override the previous name, if any. This might change in the future. For the sake of sanity, don't call this more than once for the same instance.
- If display name is set, toString will output it instead of the standard type@hashcode string
Attributes
- Inherited from:
- Named
Execute a side effecting callback every time the observable emits. If it's a signal, it also runs when its initial value is evaluated.
Execute a side effecting callback every time the observable emits. If it's a signal, it also runs when its initial value is evaluated.
Note: some signals such as stream.startWith or signal.composeAll have cacheInitialValue
config, which could affect the number of times this callback is called in cases when you re-start a signal that was previously started, but has never emitted events before. In such cases, if cacheInitialValue == false (the default) , it will cause the signal's initial value to be re-evaluated, and this will in turn trigger the provided tapEach callback.
See com.raquo.airstream.misc.SignalFromStream
// #TODO[API] How to better type this? Note: Do not provide a callback that returns a LAZY value such as EventStream, it will not be started. I may eventually add a flatTapEach method for this.
Note: Calling tapEach on an observable does not add observers to it. The callback will only run if something else is listening to the observable.
Note: The primary method of running side effects in Airstream is putting them into Observers. In general, it's good practice to keep Observables themselves free of side effects. Airstream is actually pretty good at handling non-"pure" observables, but it's better to have such separation of concerns for your own sanity and the code's predictability / maintainability.
Note: This method is called tapEach
for consistency with Scala collections. Scala also has a general tap
method available by importing util.chaining.*
.
Attributes
- Inherited from:
- BaseObservable
Attributes
- Inherited from:
- Source
Attributes
- Inherited from:
- BaseObservable
Attributes
- Inherited from:
- BaseObservable
Override defaultDisplayName instead of this, if you need to.
Override defaultDisplayName instead of this, if you need to.
Attributes
Convert this observable to a signal of Option[A]. If it is a stream, set initial value to None.
Convert this observable to a signal of Option[A]. If it is a stream, set initial value to None.
Attributes
- Inherited from:
- BaseObservable