0.1.1 • Published 7 months ago

simple-promising v0.1.1

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

1. What is simple-promising?

simple-promising is a simple Promise utility module that provides an easy pattern for managing when a Promise should resolve and when it should reject, and can easily promisify anything.

2. How to use simple-promising?

Using simple-promising is very simple. You can install it by running the following command:

npm install simple-promising

Then, you can import simple-promising into your project with the following code:

import simplePromising from 'simple-promising';

Alternatively, you can import the SimplePromising class with the following code:

import { SimplePromising } from 'simple-promising';

3. API and example code

SimplePromising class

The SimplePromising class is a custom Promise class that provides a simple pattern for managing when a Promise should resolve and when it should reject.

Constructor

constructor()

Creates a new instance of SimplePromising.

Properties

resolve: (value: MaybePromise<T>) => void;

A function that sets the state of the SimplePromising instance to fulfilled.

reject: (reason: any) => void;

A function that sets the state of the SimplePromising instance to rejected.

promise: Promise<T>;

A Promise instance that represents the state of the SimplePromising instance.

Example code

import { SimplePromising } from 'simple-promising';

const myPromise = new SimplePromising();

myPromise.resolve('Hello, world!');

myPromise.promise.then((value) => {
  console.log(value); // Output: 'Hello, world!'
});

simplePromising function

The simplePromising function is a factory function that creates a new SimplePromising instance.

Return value

SimplePromising<T>

A new SimplePromising instance.

Example code

import { simplePromising } from 'simple-promising';

const myPromise = simplePromising();

myPromise.resolve('Hello, world!');

myPromise.promise.then((value) => {
  console.log(value); // Output: 'Hello, world!'
});

Usage examples

Promisify

import simplePromising from "simple-promising";

function doSomething(cb) {
  setTimeout(() => {
    cb(null, "Hello world!");
  }, 500);
}

const sp = simplePromising();
doSomething((err, value) => err ? sp.reject(err) : sp.resolve(value));
console.log(await sp.promise);

Wait for event

import simplePromising from "simple-promising";
import { EventEmitter } from "eventemitter3";

const ee = new EventEmitter();

function when(event) {
  const sp = simplePromising();
  ee.once(event, (...args) => sp.resolve(args));
  return sp.promise;
}

when("ready").then((args) => {
  console.log("It's ok!", args);
});

setTimeout(() => {
  ee.emit("ready", "42");
});

// Output: 'It's ok!' '42'
0.1.1

7 months ago

0.1.0

7 months ago