river-functions

1.0.1 • Public • Published

river-functions

Execute multiple asynchronous functions and when they are finished execute the callback with result parameters from the functions run.

Important note

This package is still under active development. Suggestions and issue reports are more than welcome!

Install

npm install river-functions

Development

  • npm install
  • npm install babel-cli -g

Testing

npm run test

Full example usage

import river from 'river-functions'
import {each} from 'lodash'
 
// Log the errors
const log = console.log;
 
// Demo function to execute asynchronously
const asyncFunction = (data, callback) => {
    const err = Math.floor((Math.random() * 10) + 1) === 1; // random between 1 and 10\. If 1, error is true
 
    if (err) {
        return callback(err);
    }
 
    return callback(null, data);
}
 
// Function to add to the river queue
const addToRiver = (datafn) => {
    return (riverTaskDoneCallback) => {
        asyncFunction(datafn, riverTaskDoneCallback);
    }
}
 
// Demo records
const records = [
    {
        name: 'Item 1',
        value: 'Value 1'
    }, {
        name: 'Item 2',
        value: 'Value 2'
    }, {
        name: 'Item 3',
        value: 'Value 3'
    }
];
 
// Go through each of the records and store them in the river array
const functionsRiver = [];
 
each(records, (item, idx) => {
    functionsRiver.push(addToRiver(item));
});
 
// Execute the river
river(functionsRiver, (status, results, errors) => {
    if (status === false) {
        return log('Error encountered: ', errors);
    }
 
    // Close the job
    log('Successful execution: ', results);
});

Readme

Keywords

none

Package Sidebar

Install

npm i river-functions

Weekly Downloads

0

Version

1.0.1

License

ISC

Last publish

Collaborators

  • draghici