Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

asyncitt

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

asyncitt

Make array iteration easy with async/await and promises

  • 0.1.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

asyncitt Build Status

Make array iteration easy with async/await and promises

  • Same functionality as the ES5 Array iteration methods we all know
  • All the methods return a Promise, making them awaitable and thenable
  • Allow the usage of async functions as callback
  • Callbacks run in parallel
  • Lightweight (no prd dependencies)

Install

$ npm install --save asyncitt

Usage

Smooth asynchronous iteration using async/await:

const { map } = require('asyncitt');

async function example () {
  // map passing an async function as callback
  const foo = await map([1, 2, 3], async (num) => {
    const result = await asyncCall();
    return num * result;
  });

  // map passing a non-async function as callback that returns a Promise
  const bar = await map([1, 2, 3], (num) => asyncCall2(num));    
}

All methods return a promise so they can just be used outside an async function:

const { map } = require('asyncitt');

map([1, 2, 3], (num) => asyncCall2(num)).then((foo) => {
  // ...
});

API

Check the JavaScript reference for details about the API, they use the same syntax, but all return a Promise.

Excepting reduce, all methods callbacks are run in parallel. There is a series version of each method, called: ${methodName}Series. Series methods use the same API that their respective parallel ones.

forEach(array, callback, [thisArg])

docs

map(array, callback, [thisArg])

docs

find(array, callback, [thisArg])

docs

findIndex(array, callback, [thisArg])

docs

some(array, callback, [thisArg])

docs

every(array, callback, [thisArg])

docs

filter(array, callback, [thisArg])

docs

reduce(array, callback, [initialValue])

docs

Instance methods

Extending native objects is discouraged and I don't recommend it, but in case you know what you are doing, you can extend Array.prototype to use the above methods as instance methods. They have been renamed as async${MethodName} so the original ones are not overwritten.

const { instanceMethods } = require('asyncitt');
Object.assign(Array.prototype, instanceMethods);

async function example () {
  const foo = await [1, 2, 3].asyncMap((num) => asyncCall(num));  
}

License

MIT © Antonio V

Keywords

FAQs

Package last updated on 16 Jun 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc