lunaisadev-website-old/node_modules/rx/ts/core/observer-lite.ts

75 lines
2.4 KiB
TypeScript
Raw Normal View History

2021-07-28 01:40:12 +00:00
/// <reference path="./disposables/disposable.ts" />
/// <reference path="./checkedobserver.ts" />
module Rx {
/**
* Supports push-style iteration over an observable sequence.
*/
export interface IObserver<T> {
/**
* Notifies the observer of a new element in the sequence.
* @param {Any} value Next element in the sequence.
*/
onNext(value: T): void;
/**
* Notifies the observer that an exception has occurred.
* @param {Any} error The error that has occurred.
*/
onError(exception: any): void;
/**
* Notifies the observer of the end of the sequence.
*/
onCompleted(): void;
}
export interface Observer<T> {
/**
* Notifies the observer of a new element in the sequence.
* @param {Any} value Next element in the sequence.
*/
onNext(value: T): void;
/**
* Notifies the observer that an exception has occurred.
* @param {Any} error The error that has occurred.
*/
onError(exception: any): void;
/**
* Notifies the observer of the end of the sequence.
*/
onCompleted(): void;
}
export interface ObserverStatic {
/**
* Creates an observer from the specified OnNext, along with optional OnError, and OnCompleted actions.
* @param {Function} [onNext] Observer's OnNext action implementation.
* @param {Function} [onError] Observer's OnError action implementation.
* @param {Function} [onCompleted] Observer's OnCompleted action implementation.
* @returns {Observer} The observer object implemented using the given actions.
*/
create<T>(onNext?: (value: T) => void, onError?: (exception: any) => void, onCompleted?: () => void): Observer<T>;
}
/**
* Supports push-style iteration over an observable sequence.
*/
export var Observer: ObserverStatic;
}
(function() {
var iobserver: Rx.IObserver<boolean>;
var observer: Rx.Observer<boolean>;
iobserver.onNext(false);
iobserver.onError(new Error('a'));
iobserver.onCompleted();
observer.onNext(false);
observer.onError(new Error('a'));
observer.onCompleted();
var so: Rx.Observer<number> = Rx.Observer.create((v) => 1);
so = Rx.Observer.create((v) => 1, (e) => { });
so = Rx.Observer.create((v) => 1, (e) => { }, () => { });
});