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

1.0.2 • Public • Published

# Promise Completion Source Promise manageable from outer scope, similar to C#'s TaskCompletionSource

Synopsis

class PromiseSource<TResult> {
    get promise(): Promise<TResult>;
    get resolved(): boolean;
    get rejected(): boolean;
    get completed(): boolean;
    constructor(timeout?: number);
    reject(reason?: any): void;
    resolve(value?: TResult): void;
}

Example

import PromiseSource from "promise-cs";
 
function doSomething(): Promise<number>
{
    let ps = new PromiseSource<number>(/* optional timeout in millisecond */);
 
    // Some async action, event or something
    someAsyncAction((err, result) => {
        if (err) {
            ps.reject(err);
            return;
        }
        
        ps.resolve(result);
    });
 
    return ps.promise;
}
 
doSomething()
    .then(num => console.log(num))
    .catch(reason => console.error(reason))
;

Package Sidebar

Install

npm i promise-cs

Weekly Downloads

0

Version

1.0.2

License

MIT

Unpacked Size

8.48 kB

Total Files

6

Last publish

Collaborators

  • hookyns