Newly Paranoid Maintainers

    thread-promises

    1.5.2 • Public • Published

    ThreadPromises

    Promises running in separated threads

    new TPromise(resolve => {
        resolve("Look ma, I am multithread JavaScript!")
    })

    NPM

    It creates a thread for every task so it not blocking main thread and it could run in parallel

    screenshot

    Usage

    Simple

    new TPromise((resolve, reject) => {
        console.log("Look ma, I am multithread JavaScript!")
    })

    In async function

    const hugeAsyncOperation = () => {
    	return new Promise(resolve => {
            const time = (new Date()).getTime();
            while ((new Date()).getTime() - time < 10000) {}
            resolve();
        })
    };
    
    const hugeMultithreadOperation = () => {
    	return new TPromise(resolve => {
            const time = (new Date()).getTime();
            while ((new Date()).getTime() - time < 10000) {}
            resolve();
        })
    };
    
    (async () => {
    	console.log("Start async");
    	// We'll be blocked here. Page will not respond for 10 seconds
    	await hugeAsyncOperation();
    	console.log("Async done");
    
    	console.log("Start multithread");
    	// We'll not be blocked here. Page will act like nothing happens and continue here in 10 seconds
    	await hugeMultithreadOperation();
    	console.log("Multithread done");
    })()

    For additional properties put them after executor function (like in setTimeout):

    new TPromise((resolve, reject, some, additional, properties) => {
        console.log("I have no access to my old lexical environment, but I can use props")
        console.log(some, additional, properties)
    }, some, additional, properties)

    Installing

    <script src="/lib/thread-promises.min.js"></script>

    Or

    <script src="https://cdn.jsdelivr.net/npm/thread-promises/lib/thread-promises.min.js"></script>

    Or

    npm i --save thread-promises
    import TPromise from "thread-promises"

    Examples

    th-sort is a simple non-blocking sorting library

    All examples

    Expample of making blocking job on main thread and on TPromise's thread

    demo and code

    Simple resolve on timeout

    demo and code

    Simple reject on timeout

    demo and code

    Install

    npm i thread-promises

    DownloadsWeekly Downloads

    30

    Version

    1.5.2

    License

    MIT

    Unpacked Size

    34.3 kB

    Total Files

    11

    Last publish

    Collaborators

    • kshshe