simple-promising v0.1.1
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 tofulfilled
.reject: (reason: any) => void;
A function that sets the state of the
SimplePromising
instance torejected
.promise: Promise<T>;
A
Promise
instance that represents the state of theSimplePromising
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'