EventStream

com.raquo.airstream.core.EventStream
See theEventStream companion object

Attributes

Companion
object
Graph
Supertypes
trait EventSource[A]
trait Observable[A]
trait Named
trait Source[A]
class Object
trait Matchable
class Any
Show all
Known subtypes
trait WritableStream[A]
class MergeStream[A]
trait MultiParentStream[I, O]
class CombineStreamN[A, Out]
class SampleCombineStreamN[A, Out]
trait SingleParentStream[I, O]
class DebuggerStream[A]
class DistinctStream[A]
class CollectStream[A, B]
class DropStream[A]
class FilterStream[A]
class MapStream[I, O]
class StreamFromSignal[A]
class TakeStream[A]
class DebounceStream[A]
class DelayStream[A]
class SyncDelayStream[A]
class ThrottleStream[A]
class EventBusStream[A]
class ConcurrentStream[A]
class SwitchStream[I, O]
class JsPromiseStream[A]
class PeriodicStream[A]
class AjaxStream
class FetchStream
Show all

Members list

Value members

Concrete methods

def collect[B](pf: PartialFunction[A, B]): EventStream[B]

Apply pf to each event and emit the resulting value, or emit nothing if pf is not defined for that event.

Apply pf to each event and emit the resulting value, or emit nothing if pf is not defined for that event.

Value parameters

pf

Note: guarded against exceptions

Attributes

def collectFailure: EventStream[Throwable]
Implicitly added by toTryStream

Emit x if parent stream emits Left(x), do nothing otherwise

Emit x if parent stream emits Left(x), do nothing otherwise

Attributes

def collectFailure[C](pf: PartialFunction[Throwable, C]): EventStream[C]
Implicitly added by toTryStream

Emit pf(x) if parent stream emits Failure(x) and pf is defined for x, do nothing otherwise

Emit pf(x) if parent stream emits Failure(x) and pf is defined for x, do nothing otherwise

Attributes

Implicitly added by toEitherStream

Emit x if parent stream emits Left(x), do nothing otherwise

Emit x if parent stream emits Left(x), do nothing otherwise

Attributes

def collectLeft[C](pf: PartialFunction[A, C]): EventStream[C]
Implicitly added by toEitherStream

Emit pf(x) if parent stream emits Left(x) and pf is defined for x, do nothing otherwise

Emit pf(x) if parent stream emits Left(x) and pf is defined for x, do nothing otherwise

Attributes

def collectOpt[B](fn: A => Option[B]): EventStream[B]

Apply fn to parent stream event, and emit resulting x if it returns Some(x)

Apply fn to parent stream event, and emit resulting x if it returns Some(x)

Value parameters

fn

Note: guarded against exceptions

Attributes

Implicitly added by toStatusStream

Emit x if parent stream emits Resolved(_, x, _), do nothing otherwise

Emit x if parent stream emits Resolved(_, x, _), do nothing otherwise

Attributes

def collectOutput[Out2](pf: PartialFunction[Out, Out2]): EventStream[Out2]
Implicitly added by toStatusStream

Emit pf(x) if parent stream emits Resolved(_, x, _), do nothing otherwise

Emit pf(x) if parent stream emits Resolved(_, x, _), do nothing otherwise

Attributes

Implicitly added by toStatusStream

Emit Pending(input) if parent stream emits that, do nothing otherwise

Emit Pending(input) if parent stream emits that, do nothing otherwise

Attributes

Implicitly added by toStatusStream

Emit input if parent stream emits Pending(input), do nothing otherwise

Emit input if parent stream emits Pending(input), do nothing otherwise

Attributes

Implicitly added by toStatusStream

Emit pf(Resolved(...)) if parent stream emits Resolved(...), do nothing otherwise

Emit pf(Resolved(...)) if parent stream emits Resolved(...), do nothing otherwise

Attributes

def collectResolved[Out2](pf: PartialFunction[Resolved[In, Out], Out2]): EventStream[Out2]
Implicitly added by toStatusStream

Emit pf(Resolved(...)) if parent stream emits Resolved(...) and pf is defined for it, do nothing otherwise

Emit pf(Resolved(...)) if parent stream emits Resolved(...) and pf is defined for it, do nothing otherwise

Attributes

Implicitly added by toEitherStream

Emit x if parent stream emits Right(x), do nothing otherwise

Emit x if parent stream emits Right(x), do nothing otherwise

Attributes

def collectRight[C](pf: PartialFunction[B, C]): EventStream[C]
Implicitly added by toEitherStream

Emit pf(x) if parent stream emits Right(x) and pf is defined for x, do nothing otherwise

Emit pf(x) if parent stream emits Right(x) and pf is defined for x, do nothing otherwise

Attributes

Implicitly added by toOptionStream

Emit x if parent stream emits Some(x), do nothing otherwise

Emit x if parent stream emits Some(x), do nothing otherwise

Attributes

def collectSome[B](pf: PartialFunction[A, B]): EventStream[B]
Implicitly added by toOptionStream

Emit pf(x) if parent stream emits Some(x) and pf is defined for x, do nothing otherwise

Emit pf(x) if parent stream emits Some(x) and pf is defined for x, do nothing otherwise

Attributes

Implicitly added by toTryStream

Emit x if parent stream emits Right(x), do nothing otherwise

Emit x if parent stream emits Right(x), do nothing otherwise

Attributes

def collectSuccess[C](pf: PartialFunction[A, C]): EventStream[C]
Implicitly added by toTryStream

Emit pf(x) if parent stream emits Success(x) and pf is defined for x, do nothing otherwise

Emit pf(x) if parent stream emits Success(x) and pf is defined for x, do nothing otherwise

Attributes

def combineWith[T1](s1: EventSource[T1])(implicit c: Composition[A, T1]): EventStream[Composed]
Implicitly added by toCombinableStream
def combineWith[T1, T2](s1: EventSource[T1], s2: EventSource[T2])(implicit c: Composition[A, (T1, T2)]): EventStream[Composed]
Implicitly added by toCombinableStream
def combineWith[T1, T2, T3](s1: EventSource[T1], s2: EventSource[T2], s3: EventSource[T3])(implicit c: Composition[A, (T1, T2, T3)]): EventStream[Composed]
Implicitly added by toCombinableStream
def combineWith[T1, T2, T3, T4](s1: EventSource[T1], s2: EventSource[T2], s3: EventSource[T3], s4: EventSource[T4])(implicit c: Composition[A, (T1, T2, T3, T4)]): EventStream[Composed]
Implicitly added by toCombinableStream
def combineWith[T1, T2, T3, T4, T5](s1: EventSource[T1], s2: EventSource[T2], s3: EventSource[T3], s4: EventSource[T4], s5: EventSource[T5])(implicit c: Composition[A, (T1, T2, T3, T4, T5)]): EventStream[Composed]
Implicitly added by toCombinableStream
def combineWith[T1, T2, T3, T4, T5, T6](s1: EventSource[T1], s2: EventSource[T2], s3: EventSource[T3], s4: EventSource[T4], s5: EventSource[T5], s6: EventSource[T6])(implicit c: Composition[A, (T1, T2, T3, T4, T5, T6)]): EventStream[Composed]
Implicitly added by toCombinableStream
def combineWith[T1, T2, T3, T4, T5, T6, T7](s1: EventSource[T1], s2: EventSource[T2], s3: EventSource[T3], s4: EventSource[T4], s5: EventSource[T5], s6: EventSource[T6], s7: EventSource[T7])(implicit c: Composition[A, (T1, T2, T3, T4, T5, T6, T7)]): EventStream[Composed]
Implicitly added by toCombinableStream
def combineWith[T1, T2, T3, T4, T5, T6, T7, T8](s1: EventSource[T1], s2: EventSource[T2], s3: EventSource[T3], s4: EventSource[T4], s5: EventSource[T5], s6: EventSource[T6], s7: EventSource[T7], s8: EventSource[T8])(implicit c: Composition[A, (T1, T2, T3, T4, T5, T6, T7, T8)]): EventStream[Composed]
Implicitly added by toCombinableStream
def combineWithFn[T1, Out](s1: EventSource[T1])(combinator: (A, T1) => Out): EventStream[Out]
Implicitly added by toCombinableStream

Value parameters

combinator

Must not throw!

Attributes

def combineWithFn[T1, T2, Out](s1: EventSource[T1], s2: EventSource[T2])(combinator: (A, T1, T2) => Out): EventStream[Out]
Implicitly added by toCombinableStream

Value parameters

combinator

Must not throw!

Attributes

def combineWithFn[T1, T2, T3, Out](s1: EventSource[T1], s2: EventSource[T2], s3: EventSource[T3])(combinator: (A, T1, T2, T3) => Out): EventStream[Out]
Implicitly added by toCombinableStream

Value parameters

combinator

Must not throw!

Attributes

def combineWithFn[T1, T2, T3, T4, Out](s1: EventSource[T1], s2: EventSource[T2], s3: EventSource[T3], s4: EventSource[T4])(combinator: (A, T1, T2, T3, T4) => Out): EventStream[Out]
Implicitly added by toCombinableStream

Value parameters

combinator

Must not throw!

Attributes

def combineWithFn[T1, T2, T3, T4, T5, Out](s1: EventSource[T1], s2: EventSource[T2], s3: EventSource[T3], s4: EventSource[T4], s5: EventSource[T5])(combinator: (A, T1, T2, T3, T4, T5) => Out): EventStream[Out]
Implicitly added by toCombinableStream

Value parameters

combinator

Must not throw!

Attributes

def combineWithFn[T1, T2, T3, T4, T5, T6, Out](s1: EventSource[T1], s2: EventSource[T2], s3: EventSource[T3], s4: EventSource[T4], s5: EventSource[T5], s6: EventSource[T6])(combinator: (A, T1, T2, T3, T4, T5, T6) => Out): EventStream[Out]
Implicitly added by toCombinableStream

Value parameters

combinator

Must not throw!

Attributes

def combineWithFn[T1, T2, T3, T4, T5, T6, T7, Out](s1: EventSource[T1], s2: EventSource[T2], s3: EventSource[T3], s4: EventSource[T4], s5: EventSource[T5], s6: EventSource[T6], s7: EventSource[T7])(combinator: (A, T1, T2, T3, T4, T5, T6, T7) => Out): EventStream[Out]
Implicitly added by toCombinableStream

Value parameters

combinator

Must not throw!

Attributes

def combineWithFn[T1, T2, T3, T4, T5, T6, T7, T8, Out](s1: EventSource[T1], s2: EventSource[T2], s3: EventSource[T3], s4: EventSource[T4], s5: EventSource[T5], s6: EventSource[T6], s7: EventSource[T7], s8: EventSource[T8])(combinator: (A, T1, T2, T3, T4, T5, T6, T7, T8) => Out): EventStream[Out]
Implicitly added by toCombinableStream

Value parameters

combinator

Must not throw!

Attributes

def compose[B](operator: EventStream[A] => EventStream[B]): EventStream[B]

Just a convenience helper. stream.compose(f) is equivalent to f(stream)

Just a convenience helper. stream.compose(f) is equivalent to f(stream)

Attributes

def debounce(ms: Int): EventStream[A]

See docs for DebounceStream

See docs for DebounceStream

Attributes

def debounceWithStatus(ms: Int): EventStream[Status[A, A]]

Based on debounce, but tracks the status of input and output to that operator. See Status.

Based on debounce, but tracks the status of input and output to that operator. See Status.

Attributes

override def debugWith(debugger: Debugger[A]): EventStream[A]

See also various debug methods in com.raquo.airstream.debug.DebuggableObservable

See also various debug methods in com.raquo.airstream.debug.DebuggableObservable

Attributes

Definition Classes
def delay(ms: Int): EventStream[A]

Value parameters

ms

milliseconds of delay

Attributes

def delaySync(after: EventStream[_]): EventStream[A]

Make a stream that emits this stream's values but waits for after stream to emit first in a given transaction. You can use this for Signals too with Signal.composeChanges (see docs for more details)

Make a stream that emits this stream's values but waits for after stream to emit first in a given transaction. You can use this for Signals too with Signal.composeChanges (see docs for more details)

Attributes

def delayWithStatus(ms: Int): EventStream[Status[A, A]]

Based on delay, but tracks the status of input and output to that operator. See Status.

Based on delay, but tracks the status of input and output to that operator. See Status.

Attributes

override def distinctTry(isSame: (Try[A], Try[A]) => Boolean): EventStream[A]

Distinct all values (both events and errors) using a comparison function

Distinct all values (both events and errors) using a comparison function

Attributes

Definition Classes
def drop(numEvents: Int, resetOnStop: Boolean): EventStream[A]

Drop (skip) the first numEvents events from this stream. Note: errors are NOT dropped.

Drop (skip) the first numEvents events from this stream. Note: errors are NOT dropped.

Value parameters

resetOnStop

Reset the count if the stream stops

Attributes

def dropUntil(passes: A => Boolean, resetOnStop: Boolean): EventStream[A]

Drop (skip) events from this stream as long as they do NOT pass the test (as soon as they start passing, stop dropping) Note: errors are NOT dropped.

Drop (skip) events from this stream as long as they do NOT pass the test (as soon as they start passing, stop dropping) Note: errors are NOT dropped.

Value parameters

passes

Note: MUST NOT THROW!

resetOnStop

Forget everything and start dropping again if the stream stops

Attributes

def dropWhile(passes: A => Boolean, resetOnStop: Boolean): EventStream[A]

Drop (skip) events from this stream as long as they pass the test (as soon as they stop passing, stop dropping) Note: errors are NOT dropped.

Drop (skip) events from this stream as long as they pass the test (as soon as they stop passing, stop dropping) Note: errors are NOT dropped.

Value parameters

passes

Note: MUST NOT THROW!

resetOnStop

Forget everything and start dropping again if the stream stops

Attributes

def filter(passes: A => Boolean): EventStream[A]

Value parameters

passes

Note: guarded against exceptions

Attributes

def filterN(passes: (T1, T2) => Boolean): EventStream[(T1, T2)]
Implicitly added by toTupleStream2
def filterN(passes: (T1, T2, T3) => Boolean): EventStream[(T1, T2, T3)]
Implicitly added by toTupleStream3
def filterN(passes: (T1, T2, T3, T4) => Boolean): EventStream[(T1, T2, T3, T4)]
Implicitly added by toTupleStream4
def filterN(passes: (T1, T2, T3, T4, T5) => Boolean): EventStream[(T1, T2, T3, T4, T5)]
Implicitly added by toTupleStream5
def filterN(passes: (T1, T2, T3, T4, T5, T6) => Boolean): EventStream[(T1, T2, T3, T4, T5, T6)]
Implicitly added by toTupleStream6
def filterN(passes: (T1, T2, T3, T4, T5, T6, T7) => Boolean): EventStream[(T1, T2, T3, T4, T5, T6, T7)]
Implicitly added by toTupleStream7
def filterN(passes: (T1, T2, T3, T4, T5, T6, T7, T8) => Boolean): EventStream[(T1, T2, T3, T4, T5, T6, T7, T8)]
Implicitly added by toTupleStream8
def filterN(passes: (T1, T2, T3, T4, T5, T6, T7, T8, T9) => Boolean): EventStream[(T1, T2, T3, T4, T5, T6, T7, T8, T9)]
Implicitly added by toTupleStream9
def filterNot(predicate: A => Boolean): EventStream[A]
def filterWith[B](source: SignalSource[B], passes: B => Boolean): EventStream[A]

Filter stream events by a signal or var of boolean.

Filter stream events by a signal or var of boolean.

stream.filterWith(otherSignal, passes = _ == false) is essentially like stream.filter(_ => otherSignal.now() == false) (but it compiles)

Attributes

def filterWith(source: SignalSource[Boolean]): EventStream[A]

Filter stream events by a signal or var of boolean (passes when true).

Filter stream events by a signal or var of boolean (passes when true).

Attributes

override def map[B](project: A => B): EventStream[B]

Value parameters

project

Note: guarded against exceptions

Attributes

Definition Classes
def mapN[Out](project: (T1, T2) => Out): EventStream[Out]
Implicitly added by toTupleStream2
def mapN[Out](project: (T1, T2, T3) => Out): EventStream[Out]
Implicitly added by toTupleStream3
def mapN[Out](project: (T1, T2, T3, T4) => Out): EventStream[Out]
Implicitly added by toTupleStream4
def mapN[Out](project: (T1, T2, T3, T4, T5) => Out): EventStream[Out]
Implicitly added by toTupleStream5
def mapN[Out](project: (T1, T2, T3, T4, T5, T6) => Out): EventStream[Out]
Implicitly added by toTupleStream6
def mapN[Out](project: (T1, T2, T3, T4, T5, T6, T7) => Out): EventStream[Out]
Implicitly added by toTupleStream7
def mapN[Out](project: (T1, T2, T3, T4, T5, T6, T7, T8) => Out): EventStream[Out]
Implicitly added by toTupleStream8
def mapN[Out](project: (T1, T2, T3, T4, T5, T6, T7, T8, T9) => Out): EventStream[Out]
Implicitly added by toTupleStream9
def mergeWith[B >: A](streams: EventStream[B]*): EventStream[B]

Returns a stream that emits events from this stream AND all off the streams, interleaved. Note: For other types of combination, see combineWith, withCurrentValueOf, sample etc.

Returns a stream that emits events from this stream AND all off the streams, interleaved. Note: For other types of combination, see combineWith, withCurrentValueOf, sample etc.

Attributes

override def recover[B >: A](pf: PartialFunction[Throwable, Option[B]]): EventStream[B]

See docs for MapStream

See docs for MapStream

Value parameters

pf

Note: guarded against exceptions

Attributes

Definition Classes
override def recoverToEither: EventStream[Either[Throwable, A]]

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

Definition Classes
override def recoverToTry: EventStream[Try[A]]

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

Definition Classes
def sample[T1](s1: SignalSource[T1]): EventStream[T1]
Implicitly added by toCombinableStream
def sample[T1, T2](s1: SignalSource[T1], s2: SignalSource[T2]): EventStream[(T1, T2)]
Implicitly added by toCombinableStream
def sample[T1, T2, T3](s1: SignalSource[T1], s2: SignalSource[T2], s3: SignalSource[T3]): EventStream[(T1, T2, T3)]
Implicitly added by toCombinableStream
def sample[T1, T2, T3, T4](s1: SignalSource[T1], s2: SignalSource[T2], s3: SignalSource[T3], s4: SignalSource[T4]): EventStream[(T1, T2, T3, T4)]
Implicitly added by toCombinableStream
def sample[T1, T2, T3, T4, T5](s1: SignalSource[T1], s2: SignalSource[T2], s3: SignalSource[T3], s4: SignalSource[T4], s5: SignalSource[T5]): EventStream[(T1, T2, T3, T4, T5)]
Implicitly added by toCombinableStream
def sample[T1, T2, T3, T4, T5, T6](s1: SignalSource[T1], s2: SignalSource[T2], s3: SignalSource[T3], s4: SignalSource[T4], s5: SignalSource[T5], s6: SignalSource[T6]): EventStream[(T1, T2, T3, T4, T5, T6)]
Implicitly added by toCombinableStream
def sample[T1, T2, T3, T4, T5, T6, T7](s1: SignalSource[T1], s2: SignalSource[T2], s3: SignalSource[T3], s4: SignalSource[T4], s5: SignalSource[T5], s6: SignalSource[T6], s7: SignalSource[T7]): EventStream[(T1, T2, T3, T4, T5, T6, T7)]
Implicitly added by toCombinableStream
def sample[T1, T2, T3, T4, T5, T6, T7, T8](s1: SignalSource[T1], s2: SignalSource[T2], s3: SignalSource[T3], s4: SignalSource[T4], s5: SignalSource[T5], s6: SignalSource[T6], s7: SignalSource[T7], s8: SignalSource[T8]): EventStream[(T1, T2, T3, T4, T5, T6, T7, T8)]
Implicitly added by toCombinableStream
def scanLeft[B](initial: B)(fn: (B, A) => B): Signal[B]

A signal that emits the accumulated value every time that the parent stream emits.

A signal that emits the accumulated value every time that the parent stream emits.

See also: startWith

Value parameters

fn

Note: guarded against exceptions

Attributes

def scanLeftRecover[B](initial: Try[B])(fn: (Try[B], Try[A]) => Try[B]): Signal[B]

A signal that emits the accumulated value every time that the parent stream emits.

A signal that emits the accumulated value every time that the parent stream emits.

Value parameters

fn

Note: Must not throw!

Attributes

def split[Output, Key](key: Input => Key, distinctCompose: Signal[Input] => Signal[Input], duplicateKeys: DuplicateKeysConfig)(project: (Key, Input, Signal[Input]) => Output)(implicit splittable: Splittable[M]): Signal[M[Output]]
Implicitly added by toSplittableStream
def splitBoolean[C](trueF: Signal[Unit] => C, falseF: Signal[Unit] => C): EventStream[C]
Implicitly added by toBooleanStream

Split a stream of booleans.

Split a stream of booleans.

Value parameters

falseF

called when the parent stream switches from true to false. The provided signal emits Unit on every false event emitted by the stream.

trueF

called when the parent stream switches from false to true. The provided signal emits Unit on every true event emitted by the stream.

Attributes

def splitByIndex[Output](project: (Int, Input, Signal[Input]) => Output)(implicit splittable: Splittable[M]): Signal[M[Output]]
Implicitly added by toSplittableStream

Like split, but uses index of the item in the list as the key.

Like split, but uses index of the item in the list as the key.

Attributes

def splitEither[C](left: (A, Signal[A]) => C, right: (B, Signal[B]) => C): EventStream[C]
Implicitly added by toEitherStream

This .split-s a stream of Either-s by their isRight property. If you want a different key, use the .splitOne operator directly.

This .split-s a stream of Either-s by their isRight property. If you want a different key, use the .splitOne operator directly.

Value parameters

left

(initialLeft, signalOfLeftValues) => output left is called whenever stream switches from Right() to Left(). signalOfLeftValues starts with initialLeft value, and updates when the parent stream updates from Left(a) toLeft(b)`.

right

(initialRight, signalOfRightValues) => output right is called whenever stream switches from Left() to Right(). signalOfRightValues starts with initialRight value, and updates when the parent stream updates from Right(a) to Right(b).

Attributes

def splitOne[Output, Key](key: Input => Key)(project: (Key, Input, Signal[Input]) => Output): EventStream[Output]
Implicitly added by toSplittableOneStream

This operator works like split, but with only one item, not a collection of items.

This operator works like split, but with only one item, not a collection of items.

Attributes

def splitOption[B](project: (A, Signal[A]) => B, ifEmpty: => B): Signal[B]
Implicitly added by toOptionStream

This .split-s a Stream of an Option by the Option's isDefined property. If you want a different key, use the .split operator directly.

This .split-s a Stream of an Option by the Option's isDefined property. If you want a different key, use the .split operator directly.

Value parameters

ifEmpty
  • returned if Option is empty, or if the parent stream has not emitted any events yet. Re-evaluated whenever the parent stream switches from Some(a) to None. ifEmpty is NOT re-evaluated when the parent stream emits None if the last event it emitted was also a None.
project
  • (initialInput, signalOfInput) => output project is called whenever the parent signal switches from None to Some(). signalOfInput starts with initialInput value, and updates when the parent stream updates from Some(a) to Some(b).

Attributes

def splitOption[B](project: (A, Signal[A]) => B): Signal[Option[B]]
Implicitly added by toOptionStream
def splitStart[Output](project: (Input, Signal[Input]) => Output, startWith: Output): Signal[Output]
Implicitly added by toSplittableOneStream

This operator lets you "split" EventStream[Input] into two branches:

This operator lets you "split" EventStream[Input] into two branches:

  • processing of Signal[Input] into Output, and
  • the initial value of Output. This is a nice shorthand to to signal.splitOption in cases when signal is actually stream.toWeakSignal or stream.startWith(initial)

Attributes

def splitStatus[A](resolved: (Resolved[In, Out], Signal[Resolved[In, Out]]) => A, pending: (Pending[In], Signal[Pending[In]]) => A): EventStream[A]
Implicitly added by toStatusStream

This .split-s a stream of Statuses by their type (resolved vs pending). If you want a different key, use the .splitOne operator directly.

This .split-s a stream of Statuses by their type (resolved vs pending). If you want a different key, use the .splitOne operator directly.

Value parameters

pending

(initialPending, signalOfPendingValues) => output pending is called whenever stream switches from Resolved to Pending, or when the very first event is emitted (and it's Pending, as is typical) signalOfPendingValues starts with initialPending value, and updates when the parent stream emits a new Resolved consecutively after another Resolved. This happens when the stream emits inputs faster than the outputs are resolved.

resolved

(initialResolved, signalOfResolvedValues) => output resolved is called whenever stream switches from Pending to Resolved. signalOfResolvedValues starts with initialResolved value, and updates when the parent stream emits a new Resolved consecutively after another Resolved.

Attributes

def splitTry[B](success: (A, Signal[A]) => B, failure: (Throwable, Signal[Throwable]) => B): EventStream[B]
Implicitly added by toTryStream

This .split-s a stream of Try-s by their isSuccess property. If you want a different key, use the .splitOne operator directly.

This .split-s a stream of Try-s by their isSuccess property. If you want a different key, use the .splitOne operator directly.

Value parameters

failure

(initialFailure, signalOfFailureValues) => output failure is called whenever stream switches from Success() to Failure(). signalOfFailureValues starts with initialFailure value, and updates when the parent stream updates from Failure(a) to Failure(b).

success

(initialSuccess, signalOfSuccessValues) => output success is called whenever stream switches from Failure() to Success(). signalOfSuccessValues starts with initialSuccess value, and updates when the parent stream updates from Success(a) to Success(b).

Attributes

def startWith[B >: A](initial: => B, cacheInitialValue: Boolean): Signal[B]

Convert stream to signal, given an initial value

Convert stream to signal, given an initial value

Value parameters

cacheInitialValue

if false, signal's initial value will be re-evaluated on every restart (so long as the parent stream does not emit any values)

Attributes

def startWithNone: Signal[Option[A]]
def startWithTry[B >: A](initial: => Try[B], cacheInitialValue: Boolean): Signal[B]

Value parameters

cacheInitialValue

if false, signal's initial value will be re-evaluated on every restart (so long as the parent stream does not emit any values)

Attributes

def take(numEvents: Int, resetOnStop: Boolean): EventStream[A]

Take the first numEvents events from this stream, ignore the rest. Note: As long as events are being taken, ALL errors are also taken

Take the first numEvents events from this stream, ignore the rest. Note: As long as events are being taken, ALL errors are also taken

Value parameters

resetOnStop

Reset the count if the stream stops

Attributes

def takeUntil(passes: A => Boolean, resetOnStop: Boolean): EventStream[A]

Imitate parent stream as long as events to NOT pass the test; stop emitting after that.

Imitate parent stream as long as events to NOT pass the test; stop emitting after that.

Value parameters

passes

Note: MUST NOT THROW!

resetOnStop

Forget everything and start dropping again if the stream stops

Attributes

def takeWhile(passes: A => Boolean, resetOnStop: Boolean): EventStream[A]

Imitate parent stream as long as events pass the test; stop emitting after that.

Imitate parent stream as long as events pass the test; stop emitting after that.

Value parameters

passes

Note: MUST NOT THROW!

resetOnStop

Forget everything and start dropping again if the stream stops

Attributes

def throttle(ms: Int, leading: Boolean): EventStream[A]

See docs for ThrottleStream

See docs for ThrottleStream

Attributes

def throttleWithStatus(ms: Int, leading: Boolean): EventStream[Status[A, A]]

Based on throttle, but tracks the status of input and output to that operator. See Status.

Based on throttle, but tracks the status of input and output to that operator. See Status.

Attributes

override def toObservable: EventStream[A]

Attributes

Definition Classes
def toSignal[B >: A](initial: => B, cacheInitialValue: Boolean): Signal[B]

Value parameters

cacheInitialValue

if false, signal's initial value will be re-evaluated on every restart (so long as the parent stream does not emit any values)

Attributes

def toSignalWithEither[B >: A](initial: => Either[Throwable, B], cacheInitialValue: Boolean): Signal[B]

Value parameters

cacheInitialValue

if false, signal's initial value will be re-evaluated on every restart (so long as the parent stream does not emit any values)

Attributes

def toSignalWithTry[B >: A](initial: => Try[B], cacheInitialValue: Boolean): Signal[B]

Value parameters

cacheInitialValue

if false, signal's initial value will be re-evaluated on every restart (so long as the parent stream does not emit any values)

Attributes

def withCurrentValueOf[T1](s1: SignalSource[T1])(implicit c: Composition[A, T1]): EventStream[Composed]
Implicitly added by toCombinableStream
def withCurrentValueOf[T1, T2](s1: SignalSource[T1], s2: SignalSource[T2])(implicit c: Composition[A, (T1, T2)]): EventStream[Composed]
Implicitly added by toCombinableStream
def withCurrentValueOf[T1, T2, T3](s1: SignalSource[T1], s2: SignalSource[T2], s3: SignalSource[T3])(implicit c: Composition[A, (T1, T2, T3)]): EventStream[Composed]
Implicitly added by toCombinableStream
def withCurrentValueOf[T1, T2, T3, T4](s1: SignalSource[T1], s2: SignalSource[T2], s3: SignalSource[T3], s4: SignalSource[T4])(implicit c: Composition[A, (T1, T2, T3, T4)]): EventStream[Composed]
Implicitly added by toCombinableStream
def withCurrentValueOf[T1, T2, T3, T4, T5](s1: SignalSource[T1], s2: SignalSource[T2], s3: SignalSource[T3], s4: SignalSource[T4], s5: SignalSource[T5])(implicit c: Composition[A, (T1, T2, T3, T4, T5)]): EventStream[Composed]
Implicitly added by toCombinableStream
def withCurrentValueOf[T1, T2, T3, T4, T5, T6](s1: SignalSource[T1], s2: SignalSource[T2], s3: SignalSource[T3], s4: SignalSource[T4], s5: SignalSource[T5], s6: SignalSource[T6])(implicit c: Composition[A, (T1, T2, T3, T4, T5, T6)]): EventStream[Composed]
Implicitly added by toCombinableStream
def withCurrentValueOf[T1, T2, T3, T4, T5, T6, T7](s1: SignalSource[T1], s2: SignalSource[T2], s3: SignalSource[T3], s4: SignalSource[T4], s5: SignalSource[T5], s6: SignalSource[T6], s7: SignalSource[T7])(implicit c: Composition[A, (T1, T2, T3, T4, T5, T6, T7)]): EventStream[Composed]
Implicitly added by toCombinableStream
def withCurrentValueOf[T1, T2, T3, T4, T5, T6, T7, T8](s1: SignalSource[T1], s2: SignalSource[T2], s3: SignalSource[T3], s4: SignalSource[T4], s5: SignalSource[T5], s6: SignalSource[T6], s7: SignalSource[T7], s8: SignalSource[T8])(implicit c: Composition[A, (T1, T2, T3, T4, T5, T6, T7, T8)]): EventStream[Composed]
Implicitly added by toCombinableStream

Deprecated methods

def foldLeft[B](initial: B)(fn: (B, A) => B): Signal[B]

Attributes

Deprecated
true
def foldLeftRecover[B](initial: Try[B])(fn: (Try[B], Try[A]) => Try[B]): Signal[B]

Attributes

Deprecated
true

Inherited methods

def addObserver(observer: Observer[A])(implicit owner: Owner): Subscription

Subscribe an external observer to this observable

Subscribe an external observer to this observable

Attributes

Inherited from:
BaseObservable
def debugBreak(when: Try[A] => Boolean): Self[A]
Implicitly added by toDebuggableStream

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

Inherited from:
DebuggableObservable
def debugBreakErrors(when: Throwable => Boolean): Self[A]
Implicitly added by toDebuggableStream

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

Inherited from:
DebuggableObservable
def debugBreakEvents(when: A => Boolean): Self[A]
Implicitly added by toDebuggableStream

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

Inherited from:
DebuggableObservable
def debugBreakLifecycle: Self[A]
Implicitly added by toDebuggableStream

Trigger JS debugger when the observable starts and stops

Trigger JS debugger when the observable starts and stops

Attributes

Inherited from:
DebuggableObservable
def debugBreakStarts: Self[A]
Implicitly added by toDebuggableStream

Trigger JS debugger when the observable starts

Trigger JS debugger when the observable starts

Attributes

Inherited from:
DebuggableObservable
def debugBreakStops: Self[A]
Implicitly added by toDebuggableStream

Trigger JS debugger when the observable stops

Trigger JS debugger when the observable stops

Attributes

Inherited from:
DebuggableObservable
def debugLog(when: Try[A] => Boolean, useJsLogger: Boolean): Self[A]
Implicitly added by toDebuggableStream

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

Inherited from:
DebuggableObservable
def debugLogErrors(when: Throwable => Boolean): Self[A]
Implicitly added by toDebuggableStream

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

Inherited from:
DebuggableObservable
def debugLogEvents(when: A => Boolean, useJsLogger: Boolean): Self[A]
Implicitly added by toDebuggableStream

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

Inherited from:
DebuggableObservable
def debugLogLifecycle(logStarts: Boolean, logStops: Boolean): Self[A]
Implicitly added by toDebuggableStream

Log when the observable starts and stops

Log when the observable starts and stops

Attributes

Inherited from:
DebuggableObservable
def debugLogStarts: Self[A]
Implicitly added by toDebuggableStream

Log when the observable starts

Log when the observable starts

Attributes

Inherited from:
DebuggableObservable
def debugLogStops: Self[A]
Implicitly added by toDebuggableStream

Log when the observable stops

Log when the observable stops

Attributes

Inherited from:
DebuggableObservable
def debugSpy(fn: Try[A] => Unit): Self[A]
Implicitly added by toDebuggableStream

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

Inherited from:
DebuggableObservable
def debugSpyErrors(fn: Throwable => Unit): Self[A]
Implicitly added by toDebuggableStream

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

Inherited from:
DebuggableObservable
def debugSpyEvents(fn: A => Unit): Self[A]
Implicitly added by toDebuggableStream

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

Inherited from:
DebuggableObservable
def debugSpyLifecycle(startFn: Int => Unit, stopFn: () => Unit): Self[A]
Implicitly added by toDebuggableStream

Execute callbacks on when the observable starts and stops

Execute callbacks on when the observable starts and stops

Value parameters

startFn

topoRank => ()

Attributes

Inherited from:
DebuggableObservable
def debugSpyStarts(fn: Int => Unit): Self[A]
Implicitly added by toDebuggableStream

Execute callbacks on when the observable starts

Execute callbacks on when the observable starts

Value parameters

fn

topoRank => ()

Attributes

Inherited from:
DebuggableObservable
def debugSpyStops(fn: () => Unit): Self[A]
Implicitly added by toDebuggableStream

Execute callbacks on when the observable stops

Execute callbacks on when the observable stops

Attributes

Inherited from:
DebuggableObservable
def debugTopoRank: Int
Implicitly added by toDebuggableStream

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

Inherited from:
DebuggableObservable
def debugWithName(displayName: String): Self[A]
Implicitly added by toDebuggableStream

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 from:
DebuggableObservable
protected def defaultDisplayName: String

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
final def displayName: String

Attributes

Inherited from:
Named
def distinct: Self[A]

Distinct events (but keep all errors) by == (equals) comparison

Distinct events (but keep all errors) by == (equals) comparison

Attributes

Inherited from:
BaseObservable
def distinctBy(key: A => Any): Self[A]

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
def distinctByFn(isSame: (A, A) => Boolean): Self[A]

Distinct events (but keep all errors) using a comparison function

Distinct events (but keep all errors) using a comparison function

Attributes

Inherited from:
BaseObservable
def distinctByRef(implicit ev: A <:< AnyRef): Self[A]

Distinct events (but keep all errors) by reference equality (eq)

Distinct events (but keep all errors) by reference equality (eq)

Attributes

Inherited from:
BaseObservable
def distinctErrors(isSame: (Throwable, Throwable) => Boolean): Self[A]

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
final override def equals(obj: Any): Boolean

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
Inherited from:
BaseObservable
def flatMap[B, Inner[_], Output <: (Observable)](project: A => Inner[B])(implicit strategy: SwitchingStrategy[EventStream, Inner, Output], allowFlatMap: AllowFlatMap): Output[B]

#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
def flatMapCustom[B, Inner[_], Output <: (Observable)](project: A => Inner[B])(strategy: FlattenStrategy[EventStream, Inner, Output]): Output[B]

Value parameters

project

Note: guarded against exceptions

Attributes

Inherited from:
BaseObservable
def flatMapMerge[B, Inner[_], Output <: (Observable)](project: A => Inner[B])(implicit strategy: MergingStrategy[EventStream, Inner, Output]): Output[B]

Value parameters

project

Note: guarded against exceptions

Attributes

Inherited from:
BaseObservable
def flatMapSwitch[B, Inner[_], Output <: (Observable)](project: A => Inner[B])(implicit strategy: SwitchingStrategy[EventStream, Inner, Output]): Output[B]

Value parameters

project

Note: guarded against exceptions

Attributes

Inherited from:
BaseObservable
def flatMapTo[B, Inner[_], Output <: (Observable)](s: => Inner[B])(implicit strategy: SwitchingStrategy[EventStream, Inner, Output]): Output[B]

Alias to flatMapSwitch(_ => s)

Alias to flatMapSwitch(_ => s)

Attributes

Inherited from:
BaseObservable
def flatMapWithStatus[B](innerStream: => EventStream[B]): Self[Status[A, B]]

Shorthand for flatMapWithStatus(_ => innerStream).

Shorthand for flatMapWithStatus(_ => innerStream).

Attributes

Inherited from:
BaseObservable
def flatMapWithStatus[B](project: A => EventStream[B]): Self[Status[A, B]]

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
def foreach(onNext: A => Unit)(implicit owner: Owner): Subscription

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
final override def hashCode(): Int

Force reference equality checks. See comment for equals.

Force reference equality checks. See comment for equals.

Attributes

Definition Classes
Inherited from:
BaseObservable
def mapTo[B](value: => B): Self[B]

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
def mapToStrict[B](value: B): Self[B]

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
def mapToUnit: Self[Unit]

Attributes

Inherited from:
BaseObservable
def matchStreamOrSignal[B](ifStream: EventStream[A] => B, ifSignal: Signal[A] => B): B

Attributes

Inherited from:
BaseObservable
def recoverIgnoreErrors: Self[A]

Attributes

Inherited from:
BaseObservable
def setDisplayName(name: String): Named.this.type

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
def tapEach[U](f: A => U): Self[A]

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.

See https://github.com/raquo/Airstream/#tapEach for more details.

Attributes

Inherited from:
BaseObservable
def toSignalIfStream[B >: A](ifStream: EventStream[A] => Signal[B]): Signal[B]

Attributes

Inherited from:
BaseObservable
def toStreamIfSignal[B >: A](ifSignal: Signal[A] => EventStream[B]): EventStream[B]

Attributes

Inherited from:
BaseObservable
final override def toString: String

Override defaultDisplayName instead of this, if you need to.

Override defaultDisplayName instead of this, if you need to.

Attributes

Definition Classes
Named -> Any
Inherited from:
Named
def toWeakSignal: Signal[Option[A]]

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

Concrete fields

override val observable: EventStream[A]
Implicitly added by toDebuggableStream
val stream: EventStream[Boolean]
Implicitly added by toBooleanStream
Implicitly added by toCombinableStream
val stream: EventStream[Either[A, B]]
Implicitly added by toEitherStream
val stream: EventStream[Option[A]]
Implicitly added by toOptionStream
val stream: EventStream[Input]
Implicitly added by toSplittableOneStream
val stream: EventStream[M[Input]]
Implicitly added by toSplittableStream
val stream: EventStream[Status[In, Out]]
Implicitly added by toStatusStream
val stream: EventStream[Try[A]]
Implicitly added by toTryStream
val stream: EventStream[(T1, T2)]
Implicitly added by toTupleStream2
val stream: EventStream[(T1, T2, T3)]
Implicitly added by toTupleStream3
val stream: EventStream[(T1, T2, T3, T4)]
Implicitly added by toTupleStream4
val stream: EventStream[(T1, T2, T3, T4, T5)]
Implicitly added by toTupleStream5
val stream: EventStream[(T1, T2, T3, T4, T5, T6)]
Implicitly added by toTupleStream6
val stream: EventStream[(T1, T2, T3, T4, T5, T6, T7)]
Implicitly added by toTupleStream7
val stream: EventStream[(T1, T2, T3, T4, T5, T6, T7, T8)]
Implicitly added by toTupleStream8
val stream: EventStream[(T1, T2, T3, T4, T5, T6, T7, T8, T9)]
Implicitly added by toTupleStream9