Packages

class SwitchSignal[A] extends Signal[A] with SingleParentObservable[Signal[A], A] with InternalTryObserver[Signal[A]]

This flattens a Signal[ Signal[A] ] into a Signal[A]

When this signal is started, its current value tracks the current value of the last signal emitted by parent.

This signal follows standard signal mechanics: - It adds an internal observer to the signal that it's currently tracking while it's tracking it. - It does not update when it is stopped, even if the signal being tracked is not stopped (e.g. if it has other observers). - So if you want a consistent value out of this signal, keep it observed.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SwitchSignal
  2. InternalTryObserver
  3. SingleParentObservable
  4. InternalObserver
  5. Signal
  6. Observable
  7. Named
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new SwitchSignal(parent: Signal[Signal[A]])

Type Members

  1. type Self[+T] = Signal[T]

    Basic type for this observable.

    Basic type for this observable. Could be EventStream or Signal

    Definition Classes
    SignalObservable

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def addInternalObserver(observer: InternalObserver[A]): Unit

    Child observable should call this method on its parents when it is started.

    Child observable should call this method on its parents when it is started. This observable calls onStart if this action has given it its first observer (internal or external).

    Attributes
    protected[airstream]
    Definition Classes
    Observable
  5. def addObserver(observer: Observer[A])(implicit owner: Owner): Subscription

    Subscribe an external observer to this observable

    Subscribe an external observer to this observable

    Definition Classes
    Observable
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def changes: EventStream[A]
    Definition Classes
    Signal
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  9. def compose[B](operator: (Signal[A]) => Signal[B]): Signal[B]

    operator

    Note: Must not throw!

    Definition Classes
    Signal
  10. def composeAll[B](changesOperator: (EventStream[A]) => EventStream[B], initialOperator: (Try[A]) => Try[B]): Signal[B]

    changesOperator

    Note: Must not throw!

    initialOperator

    Note: Must not throw!

    Definition Classes
    Signal
  11. def composeChanges[AA >: A](operator: (EventStream[A]) => EventStream[AA]): Signal[AA]

    operator

    Note: Must not throw!

    Definition Classes
    Signal
  12. def debugWith(debugger: Debugger[A]): Signal[A]

    See also debug convenience method in Observable

    See also debug convenience method in Observable

    Definition Classes
    SignalObservable
  13. 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
    protected
    Definition Classes
    Named
  14. final def displayName: String
    Definition Classes
    Named
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  17. val externalObservers: ObserverList[Observer[A]]

    Note: Observer can be added more than once to an Observable.

    Note: Observer can be added more than once to an Observable. If so, it will observe each event as many times as it was added.

    Attributes
    protected[this]
    Definition Classes
    Observable
  18. final def fireError(nextError: Throwable, transaction: Transaction): Unit
    Attributes
    protected[this]
    Definition Classes
    SignalObservable
  19. def fireTry(nextValue: Try[A], transaction: Transaction): Unit

    Signal propagates only if its value has changed

    Signal propagates only if its value has changed

    Attributes
    protected[this]
    Definition Classes
    SignalObservable
  20. final def fireValue(nextValue: A, transaction: Transaction): Unit
    Attributes
    protected[this]
    Definition Classes
    SignalObservable
  21. def flatMap[B, Inner[_], Output[+_] <: Observable[_]](compose: (A) => Inner[B])(implicit strategy: FlattenStrategy[Self, Inner, Output]): Output[B]

    compose

    Note: guarded against exceptions

    Definition Classes
    Observable
    Annotations
    @inline()
  22. def foldLeft[B](makeInitial: (A) => B)(fn: (B, A) => B): Signal[B]

    makeInitial

    Note: guarded against exceptions

    fn

    Note: guarded against exceptions

    Definition Classes
    Signal
  23. def foldLeftRecover[B](makeInitial: (Try[A]) => Try[B])(fn: (Try[B], Try[A]) => Try[B]): Signal[B]

    makeInitial

    currentParentValue => initialValue Note: must not throw

    fn

    (currentValue, nextParentValue) => nextValue

    Definition Classes
    Signal
  24. 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

    Definition Classes
    Observable
  25. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  26. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  27. def initialValue: Try[A]

    Evaluate initial value of this Signal.

    Evaluate initial value of this Signal. This method must only be called once, when this value is first needed. You should override this method as def (no val or lazy val) to avoid holding a reference to the initial value beyond the duration of its relevance.

    Attributes
    protected
    Definition Classes
    SwitchSignalSignal
  28. val internalObservers: ObserverList[InternalObserver[A]]

    Note: This is enforced to be a Set outside of the type system #performance

    Note: This is enforced to be a Set outside of the type system #performance

    Attributes
    protected[this]
    Definition Classes
    Observable
  29. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  30. def isStarted: Boolean
    Attributes
    protected[this]
    Definition Classes
    Observable
  31. def map[B](project: (A) => B): Signal[B]

    project

    Note: guarded against exceptions

    Definition Classes
    SignalObservable
  32. def mapTo[B](value: => B): Self[B]

    value is passed by name, so it will be evaluated whenever the Observable fires.

    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

    Note: guarded against exceptions

    Definition Classes
    Observable
  33. 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

    Definition Classes
    Observable
  34. val maybeDisplayName: UndefOr[String]

    This name should identify the instance (observable or observer) uniquely enough for your purposes.

    This name should identify the instance (observable or observer) uniquely enough for your purposes. You can read / write it to simplify debugging. Airstream uses this in debugLog* methods. In the future, we will expand on this. #TODO[Debug] We don't use this to its full potential yet.

    Attributes
    protected[this]
    Definition Classes
    Named
  35. val maybeLastSeenCurrentValue: UndefOr[Try[A]]
    Attributes
    protected[this]
    Definition Classes
    Signal
  36. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  37. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  38. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  39. def now(): A

    See comment for tryNow right above

    See comment for tryNow right above

    Attributes
    protected[airstream]
    Definition Classes
    Signal
    Exceptions thrown

    Exception if current value is an error

  40. def observe(implicit owner: Owner): OwnedSignal[A]

    Add a noop observer to this signal to ensure that it's started.

    Add a noop observer to this signal to ensure that it's started. This lets you access .now and .tryNow on the resulting StrictSignal.

    You can use myStream.toWeakSignal.observe.tryNow() to read the last emitted value from event streams just as well.

    Definition Classes
    Signal
  41. def onAddedExternalObserver(observer: Observer[A]): Unit
    Attributes
    protected
    Definition Classes
    SignalObservable
  42. final def onError(nextError: Throwable, transaction: Transaction): Unit

    Must not throw

    Must not throw

    Attributes
    protected[airstream]
    Definition Classes
    InternalTryObserverInternalObserver
  43. final def onNext(nextValue: Signal[A], transaction: Transaction): Unit

    Must not throw

    Must not throw

    Attributes
    protected[airstream]
    Definition Classes
    InternalTryObserverInternalObserver
  44. def onStart(): Unit

    This method is fired when this observable starts working (listening for parent events and/or firing its own events), that is, when it gets its first Observer (internal or external).

    This method is fired when this observable starts working (listening for parent events and/or firing its own events), that is, when it gets its first Observer (internal or external).

    onStart can potentially be called multiple times, the second time being after it has stopped (see onStop).

    Attributes
    protected[this]
    Definition Classes
    SwitchSignalSingleParentObservableSignalObservable
  45. def onStop(): Unit

    This method is fired when this observable stops working (listening for parent events and/or firing its own events), that is, when it loses its last Observer (internal or external).

    This method is fired when this observable stops working (listening for parent events and/or firing its own events), that is, when it loses its last Observer (internal or external).

    onStop can potentially be called multiple times, the second time being after it has started again (see onStart).

    Attributes
    protected[this]
    Definition Classes
    SwitchSignalSingleParentObservableObservable
  46. def onTry(nextSignalTry: Try[Signal[A]], transaction: Transaction): Unit

    Must not throw

    Must not throw

    Attributes
    protected[airstream]
    Definition Classes
    SwitchSignalInternalObserver
  47. val parent: Signal[Signal[A]]
    Attributes
    protected[this]
    Definition Classes
    SwitchSignalSingleParentObservable
  48. def recover[B >: A](pf: PartialFunction[Throwable, Option[B]]): Signal[B]

    pf

    Note: guarded against exceptions

    Definition Classes
    SignalObservable
  49. def recoverIgnoreErrors: Self[A]
    Definition Classes
    Observable
  50. def recoverToTry: Signal[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

    Definition Classes
    SignalObservable
  51. def removeExternalObserverNow(observer: Observer[A]): Unit
    Attributes
    protected[airstream]
    Definition Classes
    Observable
  52. def removeInternalObserverNow(observer: InternalObserver[A]): Unit

    Child observable should call Transaction.removeInternalObserver(parent, childInternalObserver) when it is stopped.

    Child observable should call Transaction.removeInternalObserver(parent, childInternalObserver) when it is stopped. This observable calls onStop if this action has removed its last observer (internal or external).

    Attributes
    protected[airstream]
    Definition Classes
    Observable
  53. def setCurrentValue(newValue: Try[A]): Unit
    Attributes
    protected[this]
    Definition Classes
    Signal
  54. def setDisplayName(name: String): SwitchSignal.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

    Definition Classes
    Named
  55. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  56. def toSignal[AA >: A](initialIfStream: => AA): Signal[AA]
    Definition Classes
    Observable
  57. def toStreamOrSignalChanges: EventStream[A]
    Definition Classes
    Observable
  58. final def toString(): String

    Override defaultDisplayName instead of this, if you need to.

    Override defaultDisplayName instead of this, if you need to.

    Definition Classes
    Named → AnyRef → Any
  59. val topoRank: Int

    When subclassing Observable **outside of com.raquo.airstream package**, just make this field public:

    When subclassing Observable **outside of com.raquo.airstream package**, just make this field public:

    override val topoRank: Int = ???

    "protected[airstream]" will allow this. See https://github.com/raquo/Airstream/issues/37

    Attributes
    protected[airstream]
    Definition Classes
    SwitchSignalObservable
  60. def tryNow(): Try[A]

    Initial value is only evaluated if/when needed (when there are observers)

    Initial value is only evaluated if/when needed (when there are observers)

    Attributes
    protected[airstream]
    Definition Classes
    Signal
  61. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  62. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  63. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from InternalTryObserver[Signal[A]]

Inherited from SingleParentObservable[Signal[A], A]

Inherited from InternalObserver[Signal[A]]

Inherited from Signal[A]

Inherited from Observable[A]

Inherited from Named

Inherited from AnyRef

Inherited from Any

Ungrouped