Skip to content

metarhia/do

Folders and files

NameName
Last commit message
Last commit date
Nov 9, 2023
Feb 24, 2023
Dec 3, 2020
Nov 9, 2023
Aug 6, 2020
Dec 20, 2017
Dec 20, 2017
Feb 24, 2023
May 28, 2021
Feb 24, 2023
Feb 24, 2023
Nov 9, 2023
Feb 3, 2024
Jan 17, 2019
Nov 9, 2023
Nov 9, 2023

Repository files navigation

"do" is the simplest way to manage asynchronicity

CI Status NPM Version NPM Downloads/Month NPM Downloads

If you don't want to use all the async/chain libraries but just want a reliable way to know when the function is done - this is for you.

Installation

npm i do

Usage

Series async execution

const chain = require('do');

const c1 = chain
  .do(readConfig, 'myConfig')
  .do(selectFromDb, 'select * from cities')
  .do(getHttpPage, 'http://kpi.ua')
  .do(readFile, 'README.md');

c1((err, result) => {
  console.log('done');
  if (err) console.log(err);
  else console.dir({ result });
});

Data collector

const chain = require('do');
const fs = require('fs');

const dc = chain.do(6);

dc('user', null, { name: 'Marcus Aurelius' });
fs.readFile('HISTORY.md', (err, data) => dc.collect('history', err, data));
fs.readFile('README.md', dc.callback('readme'));
fs.readFile('README.md', dc('readme'));
dc.take('readme', fs.readFile, 'README.md');
setTimeout(() => dc.pick('timer', { date: new Date() }), 1000);

Run tests

npm test

License & Contributors

Copyright (c) 2013-2023 do contributors. See github for full contributors list. Do is MIT licensed.