DebuggableObserver

final class DebuggableObserver[A](val observer: Observer[A]) extends AnyVal

This implicit class provides debug* methods for observers.

Every debug* method creates a new observer that performs the specified behaviour and then calls the original observer.

Note: type inference doesn't work on Observer debug* methods, so you need to provide the AA type param (it should be same as A).

class AnyVal
trait Matchable
class Any

Value members

Concrete methods

def debugBreak(when: Try[A] => Boolean): Observer[A]

Trigger JS debugger for emitted events and errors if when passes

Trigger JS debugger for emitted events and errors if when passes

def debugBreakErrors(when: Throwable => Boolean): Observer[A]

Trigger JS debugger for emitted errors (but not events) if when passes

Trigger JS debugger for emitted errors (but not events) if when passes

def debugBreakEvents(when: A => Boolean): Observer[A]

Trigger JS debugger for emitted events (but not errors) if when passes

Trigger JS debugger for emitted events (but not errors) if when passes

def debugLog(when: Try[A] => Boolean, useJsLogger: Boolean): Observer[A]

Log emitted events and errors if when condition passes, using dom.console.log if useJsLogger is true.

Log emitted events and errors if when condition passes, using dom.console.log if useJsLogger is true.

def debugLogErrors(when: Throwable => Boolean): Observer[A]

Log emitted errors (but not regular events) if when condition passes

Log emitted errors (but not regular events) if when condition passes

def debugLogEvents(when: A => Boolean, useJsLogger: Boolean): Observer[A]

Log emitted events (but not errors) if when condition passes, using dom.console.log if useJsLogger is true.

Log emitted events (but not errors) if when condition passes, using dom.console.log if useJsLogger is true.

def debugSpy(fn: Try[A] => Unit): Observer[A]

Execute fn on every emitted event or error

Execute fn on every emitted event or error

def debugSpyErrors(fn: Throwable => Unit): Observer[A]

Execute fn on every emitted error (but not regular events)

Execute fn on every emitted error (but not regular events)

def debugSpyEvents(fn: A => Unit): Observer[A]

Execute fn on every emitted event (but not error)

Execute fn on every emitted event (but not error)

def debugWithName(displayName: String): Observer[A]

Create a new observer with a displayName, that sends all events to the original observer. This is different from setDisplayName.

Create a new observer with a displayName, that sends all events to the original observer. This is different from setDisplayName.

If you say observer.debugWithName("foo").debugLog(), the displayName used by the logging observer will be "foo" verbatim, whereas if you say observer.setDisplayName("foo").debugLog(), the logger's displayName will be "foo|Debug" – with a suffix – to differentiate it from the "foo" displayName of observer itself.

Concrete fields