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

asyncreiterable

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

asyncreiterable

An AsyncReiterable is an append-only collection that allows multiple asynchronous iterations.

  • 2.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

AsyncReiterable

Build Status Coverage Status npm version An AsyncReiterable is an append-only collection that allows multiple asynchronous iterations.

Each time the iterator() method of this AsyncReiterable is called, a new AsyncIterator is produced.

This package can be used in cases where you need an AsyncIterator, but you need to be able to iterate over them multiple times.

Install

$ npm install asyncreiterable

Usage

At the time of writing, this package provides AsyncReiterableArray, an array-backed implementation of the AsyncReiterable interface.

Constructing

It can be constructed in different ways through the following static methods:

import {AsyncReiterableArray} from "asyncreiterable";

# Creates an ended AsyncReiterable with the given data elements
AsyncReiterableArray.fromFixedData([1, 2, 3])

# Creates an open-ended AsyncReiterable with the given initial data elements
AsyncReiterableArray.fromInitialData([1, 2, 3])

# Creates an open-ended AsyncReiterable with no initial data elements
AsyncReiterableArray.fromInitialEmpty()

Appending

Data elements can only be pushed, no data elements can be removed.

The iterable becomes ended when null is pushed.

const iterable = AsyncReiterableArray.fromInitialData([1, 2, 3])

# Add data elements
iterable.push(4);
iterable.push(5);
iterable.push(6);

# End the iterable
iterable.push(null);

Iterating

AsyncReiterable that are either ended or not ended yet can both be iterated.

The iterator() method returns an AsyncIterator that will contains all current and future data elements in this AsyncReiterable. It will be ended once the AsyncReiterable is ended.

const iterable = AsyncReiterableArray.fromInitialData([1, 2])

const it1 = iterable.iterator();
const it2 = iterable.iterator();

it1.on('data', console.log);
it2.on('data', console.log);

iterable.push(3);
iterable.push(4);
iterable.push(null);

# Output from both iterators:
#   1
#   2
#   3
#   4

License

This software is written by Ruben Taelman.

This code is released under the MIT license.

Keywords

FAQs

Package last updated on 08 Jul 2020

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