pietile-promise-observer
TypeScript icon, indicating that this package has built-in type declarations

1.4.0 • Public • Published

Pietile Promise Observer

npm version install size

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) {
    // Smth wrong happened
    console.log("Error :(", result.error.message);
    return;
  }

  console.log(result.value + 1);
}

const promiseObserver = new PromiseObserver<number>();

promiseObserver.subscribe(asyncAction(), resultHandler);

// Somehwere later ...

promiseObserver.subscribe(asyncAction(), resultHandler);
// or
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.

Package Sidebar

Install

npm i pietile-promise-observer

Weekly Downloads

5

Version

1.4.0

License

MIT

Unpacked Size

5.49 kB

Total Files

6

Last publish

Collaborators

  • vshab