AjaxEventStream

class AjaxEventStream(method: String, url: String, data: InputData, timeoutMs: Int, headers: Map[String, String], withCredentials: Boolean, responseType: String, isStatusCodeSuccess: Int => Boolean, requestObserver: Observer[XMLHttpRequest], progressObserver: Observer[(XMLHttpRequest, ProgressEvent)], readyStateChangeObserver: Observer[XMLHttpRequest]) extends WritableEventStream[XMLHttpRequest]

AjaxEventStream performs an HTTP request and emits an dom.XMLHttpRequest on success, or an AjaxStreamError error (AjaxStatusError | AjaxNetworkError | AjaxTimeout | AjaxAbort) on failure.

AjaxEventStream performs an HTTP request and emits an dom.XMLHttpRequest on success, or an AjaxStreamError error (AjaxStatusError | AjaxNetworkError | AjaxTimeout | AjaxAbort) on failure.

Acceptable HTTP response status codes are 2xx and 304, others result in AjaxStatusError.

The network request is only performed when the stream is started.

When stream is restarted, a new request is performed, and the subsequent response is emitted. The previous request is not aborted, but its response will be ignored.

Warning: dom.XmlHttpRequest is an ugly, imperative JS construct. We set event callbacks for onload, onerror, onabort, ontimeout, and if requested, also for onprogress and onreadystatechange. Make sure you don't override Airstream's listeners, or this stream will not work properly.

Value Params
progressObserver
  • called when progress is reported
readyStateChangeObserver
  • called when readyState changes
requestObserver
  • called just before the request is sent
See also

dom.raw.XMLHttpRequest for a description of the parameters

Companion
object
trait WritableEventStream[XMLHttpRequest]
trait WritableObservable[XMLHttpRequest]
trait EventStream[XMLHttpRequest]
trait EventSource[XMLHttpRequest]
trait Observable[XMLHttpRequest]
trait BaseObservable[[A] =>> EventStream[A], XMLHttpRequest]
trait Named
trait Source[XMLHttpRequest]
class Object
trait Matchable
class Any

Value members

Inherited methods

override def addObserver(observer: Observer[XMLHttpRequest])(owner: Owner): Subscription
Definition Classes
Inherited from
WritableObservable
def collect[B](pf: PartialFunction[XMLHttpRequest, B]): EventStream[B]
Value Params
pf

Note: guarded against exceptions

Inherited from
EventStream
def compose[B](operator: EventStream[XMLHttpRequest] => EventStream[B]): EventStream[B]
Inherited from
EventStream
def debounce(ms: Int): EventStream[XMLHttpRequest]

See docs for DebounceEventStream

See docs for DebounceEventStream

Inherited from
EventStream
override def debugWith(debugger: Debugger[XMLHttpRequest]): EventStream[XMLHttpRequest]

See also debug convenience method in BaseObservable

See also debug convenience method in BaseObservable

Definition Classes
Inherited from
EventStream
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.

Inherited from
Named
def delay(ms: Int): EventStream[XMLHttpRequest]
Value Params
ms

milliseconds of delay

Inherited from
EventStream
def delaySync(after: EventStream[_]): EventStream[XMLHttpRequest]

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)

Inherited from
EventStream
final def displayName: String
Inherited from
Named
def filter(passes: XMLHttpRequest => Boolean): EventStream[XMLHttpRequest]
Value Params
passes

Note: guarded against exceptions

Inherited from
EventStream
def filterNot(predicate: XMLHttpRequest => Boolean): EventStream[XMLHttpRequest]
Inherited from
EventStream
@inline
def flatMap[B, Inner[_], Output <: ([_] =>> Observable[_])](compose: XMLHttpRequest => Inner[B])(strategy: FlattenStrategy[[A] =>> EventStream[A], Inner, Output]): Output[B]
Value Params
compose

Note: guarded against exceptions

Inherited from
BaseObservable
def foldLeft[B](initial: B)(fn: (B, XMLHttpRequest) => B): Signal[B]
Value Params
fn

Note: guarded against exceptions

Inherited from
EventStream
def foldLeftRecover[B](initial: Try[B])(fn: (Try[B], Try[XMLHttpRequest]) => Try[B]): Signal[B]
Value Params
fn

Note: Must not throw!

Inherited from
EventStream
def foreach(onNext: XMLHttpRequest => Unit)(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

Inherited from
BaseObservable
override def map[B](project: XMLHttpRequest => B): EventStream[B]
Definition Classes
Inherited from
EventStream
def mapTo[B](value: => B): EventStream[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 Params
value

Note: guarded against exceptions

Inherited from
BaseObservable
def mapToStrict[B](value: B): EventStream[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

Inherited from
BaseObservable
override protected def numAllObservers: Int
Definition Classes
Inherited from
WritableObservable
override def recover[B >: XMLHttpRequest](pf: PartialFunction[Throwable, Option[B]]): EventStream[B]

See docs for MapEventStream

See docs for MapEventStream

Value Params
pf

Note: guarded against exceptions

Definition Classes
Inherited from
EventStream
def recoverIgnoreErrors: EventStream[XMLHttpRequest]
Inherited from
BaseObservable
override def recoverToTry: EventStream[Try[XMLHttpRequest]]
Definition Classes
Inherited from
EventStream
def setDisplayName(name: String): AjaxEventStream

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
Inherited from
Named
@inline
def startWith[B >: XMLHttpRequest](initial: => B): Signal[B]
Inherited from
EventStream
@inline
def startWithNone: Signal[Option[XMLHttpRequest]]
Inherited from
EventStream
@inline
def startWithTry[B >: XMLHttpRequest](initial: => Try[B]): Signal[B]
Inherited from
EventStream
def throttle(ms: Int, leading: Boolean): EventStream[XMLHttpRequest]

See docs for ThrottleEventStream

See docs for ThrottleEventStream

Inherited from
EventStream
override def toObservable: EventStream[XMLHttpRequest]
Definition Classes
Inherited from
EventStream
def toSignal[B >: XMLHttpRequest](initial: => B): Signal[B]
Inherited from
EventStream
def toSignalIfStream[B >: XMLHttpRequest](ifStream: EventStream[XMLHttpRequest] => Signal[B]): Signal[B]
Inherited from
BaseObservable
def toSignalWithTry[B >: XMLHttpRequest](initial: => Try[B]): Signal[B]
Inherited from
EventStream
def toStreamIfSignal[B >: XMLHttpRequest](ifSignal: Signal[XMLHttpRequest] => EventStream[B]): EventStream[B]
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.

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

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.

Inherited from
BaseObservable

Concrete fields

lazy val completeEvents: EventStream[XMLHttpRequest]

This stream will emit at most one event per request regardless of the outcome.

This stream will emit at most one event per request regardless of the outcome.

You need to introspect the result to determine whether the request succeeded, failed, timed out, or was aborted.

Inherited fields

protected val externalObservers: ObserverList[Observer[XMLHttpRequest]]

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.

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.

Inherited from
WritableObservable
protected val internalObservers: ObserverList[InternalObserver[XMLHttpRequest]]

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

Inherited from
WritableObservable