thread-promises
TypeScript icon, indicating that this package has built-in type declarations

1.6.3 • Public • Published

ThreadPromises

Promises running in separated threads

new TPromise((resolve) => {
  resolve("I am multithread JavaScript");
});

npm version npm type definitions GitHub top language

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("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

Package Sidebar

Install

npm i thread-promises

Weekly Downloads

39

Version

1.6.3

License

MIT

Unpacked Size

29.7 kB

Total Files

14

Last publish

Collaborators

  • kshshe