UNPKG

jsworkerutils

Version:

Helper class that improves the the loading processes, an implementation of multithreaded JS # Development Guide ## About - This library is meant to be a node packaged module that optimize concurrent api requests and simplify as much as possible , the li

63 lines (42 loc) 2.51 kB
# flexloaders ### DISCLAIMER: This library is a work in progress and its not ready for production - The whole paradigm of JavaScript is based on the idea of single-threaded environment but here come Web Workers which remove (partially) this limitation.Web Workers allow developers to put long-running and computationally intensive tasks on the background. This library simplifies the implementation of webworker for mutithreaded processes. - To use this library at this stage in your existing apps you might need to tweak some parts of the library - Improves the the loading process of endpoints on multiple processes - Runs multiple processes in parallel. - Targets es6, es2015, es5, Typescript - Primarily focuses on running multiple api request in parallel * On the client side * This library is meant to be a node packaged module that optimize concurrent api requests and simplify as much as possible , the library should be able integrate with other javascript projects indepent of frameworks. # Collaborrative Guide - Collaborators are welcome to fork this project please read the DevelopersREADME.md form guides - Optimize computational resource for running asynchronous requests - For web applications that requires loading multiple resources this library will help optimize calls ## Use Case - import the library from conncurrent request from flexloaders ``` import { concurrentRequests,layersSt} from 'flexloaders' concurrentRequest(< array of values >) ``` or common js ``` const concurrentRequests = require('flexloaders'); const layersSt = require('flexloaders'); ``` - All requests must be labelled with a layername and a url as declared below ```const req = {layername: <string>, url : <string>}``` - Pass all requests to an array and call as follows ``` concurrentRequests([reqArray])``` - You can get the values of your request by subscibing to an observer which you imported above as ``` layerSt layersSt.subscribe((item: any) => ``` - Check for values in your stream before accessing them as follows * You must also define a means to check if values are different before passing them as observable might stream same values over repeated calls ``` if (Object.keys(item).length > 0 { item becomes your return value } ``` - All requests uses web workers hence cutting request time by a fraction of number of cores available on the client machine