thread-promises
v1.6.3
Published
Promises running in separated threads
Downloads
77
Maintainers
Readme
ThreadPromises
Promises running in separated threads
new TPromise((resolve) => {
resolve("I am multithread JavaScript");
});
It creates a thread for every task so it not blocking main thread and it could run in parallel
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
Expample of making blocking job on main thread and on TPromise's thread
Simple resolve on timeout
Simple reject on timeout