Pietile Promise Observer
![install size](https://badgen.net/packagephobia/install/pietile-promise-observer)
As Promise can't be canceled we can just unsubscribe from its result when don't need it.
Installation
Using yarn
yarn add pietile-promise-observer
or using npm
npm install -S pietile-promise-observer
Usage example
import { PromiseObserver, PromiseResult } from "pietile-promise-observer";
function asyncAction(): Promise<number> {
return new Promise((resolve) => {
setTimeout(() => {
resolve(Math.random());
}, 1000);
});
}
function resultHandler(result: PromiseResult<number>): void {
if (result.error) {
console.log("Error :(", result.error.message);
return;
}
console.log(result.value + 1);
}
const promiseObserver = new PromiseObserver<number>();
promiseObserver.subscribe(asyncAction(), resultHandler);
promiseObserver.subscribe(asyncAction(), resultHandler);
promiseObserver.unsubscribe();
API
new PromiseObserver()
Create new PromiseObserver.
subscribe(promise: Promise<T>, callback: Callback<T>, unsubscribedCallback?: Callback<T>): Promise<T>
Subscribe to promise
. After the promise
is resolved the callback
will be called with either
{ value: null; error: Error; }
or { value: T; error: null; }
argument. Optional unsubscribedCallback
will be called for unsubscribed promises. Return the same promise.
unsubscribe(): void
Unsubscribe from subscribed Promise
isSubscribed(): boolean
Is observer awaiting for any promise result?
PromiseObserver.WARN_ON_ERROR
Static property. When true will warn in console on each rejection. Useful for debugging
License
Pietile Promise Observer is MIT License.