This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/398566/785036/concurrent_promise.js
- License: The MIT license
- Copyright (c) 2020 furyu @furyutei
- Target: Browser(Google Chrome, Firefox), Node.js
Parallel processing module for JavaScript that can specify the number of concurrent executions.
Module
Usage
let result_info = await concurrent_promise.execute(
promise_function_array, // Array of functions that return Promise (Note: it's not Promise itself)
max_concurrent_worker // Max concurrent Promise number (default: 10)
);
// result_info = {
// promise_results : <Array of results for each Promise>,
// success_list : <Array of successful Promise results>,
// failure_list : <Array of failed Promise results>,
// }
Trial
Browser
Open the test page in your browser and follow the instructions to run it.
Node.js
Install
$ cd js-concurrent_promise
$ yarn install
Examples
$ node -i
// [load modules]
const { concurrentPromise, concurrent_promise, test } = require( './test/node_test.js' );
// [run]
// test.run( target_module, promise_number, max_concurrent_worker );
// target_module = concurrentPromise: simple version (run Promise.all with each max_concurrent_worker)
test.run( concurrentPromise, 100, 10 );
// target_module = concurrent_promise: efficiency improvement version
test.run( concurrent_promise, 100, 10 );
// [cancel]
test.cancel();
Performance Comparison of Parallel Processing
![Performance Comparison of Parallel Processing in JavaScript](https://github.com/furyutei/js-concurrent_promise/raw/images/PerformanceComparison.png)