IxJS - The Interactive Extensions for JavaScript

  •        143

The Interactive Extensions for JavaScript (IxJS) brings the Array#extras combinators to iterables, generators, async iterables and async generators. With the introduction of the Symbol.iterator and generators in ES2015, and subsequent introduction of Symbol.asyncIterator and async generators, it became obvious we need an abstraction over these data structures for composition, querying and more.IxJS unifies both synchronous and asynchronous pull-based collections, just as RxJS unified the world of push-based collections. RxJS is great for event-based workflows where the data can be pushed at the rate of the producer, however, IxJS is great at I/O operations where you as the consumer can pull the data when you are ready.



tslib : ^1.8.0



Related Projects

chillout - Reduce CPU usage in JavaScript

  •    Javascript

Reduce JavaScript CPU usage by asynchronous iteration. Provides asynchronous iteration functions that have a Promise based interface and it can execute with low CPU usage. Each iteration adds delay if the processing is heavy to maintain the CPU stability. Iterate without delay if processing is fast. Therefore, it will realize friendly processing for your machine. It can execute JavaScript without "Warning: Unresponsive Script" alert in the browser.

graphql-redis-subscriptions - A graphql subscriptions implementation using redis and apollo's graphql-subscriptions

  •    TypeScript

This package implements the PubSubEngine Interface from the graphql-subscriptions package and also the new AsyncIterator interface. It allows you to connect your subscriptions manger to a redis Pub Sub mechanism to support multiple subscription manager instances. Subscriptions resolvers are not a function, but an object with subscribe method, that returns AsyncIterable.

promise-fun - Promise packages, patterns, chat, and tutorials


I intend to use this space to document my promise modules, useful promise patterns, and how to solve common problems. For now though, you can see all my promise modules below.Star this repo to show your interest, so I can know whether to prioritize this work.

axax - Async Iterator Extensions for JavaScript e.g. map, reduce, filter, flatMap, etc.

  •    TypeScript

A library of async iterator extensions for JavaScript including map, reduce, filter, flatMap, pipe and more. Async iterators are a useful way to handle asynchronous streams. This library adds a number of utility methods similar to those found in lodash, underscore, Ramda or RxJs.

redux-promise-middleware - Enables simple, yet robust handling of async action creators in Redux

  •    Javascript

Redux Promise Middleware enables simple, yet robust handling of async action creators in Redux. Given a single action with an async payload, the middleware transforms the action to a separate a pending action and a separate fulfilled/rejected action, representing the states of the async action.

redux-pack - Sensible promise handling and middleware for redux

  •    Javascript

redux-pack is a library that introduces promise-based middleware that allows async actions based on the lifecycle of a promise to be declarative. Async actions in redux are often done using redux-thunk or other middlewares. The problem with this approach is that it makes it too easy to use dispatch sequentially, and dispatch multiple "actions" as the result of the same interaction/event, where they probably should have just been a single action dispatch.

callbag-basics - 👜 Tiny and fast reactive/iterable programming library

  •    Javascript

Basic callbag factories and operators to get started with. Callbag is just a spec, but callbag-basics is a real library you can use. Imagine a hybrid between an Observable and an (Async)Iterable, that's what callbags are all about. In addition, the internals are tiny because it's all done with a few simple callbacks, following the callbag spec. As a result, it's tiny and fast.

Awaity.js - A functional, lightweight alternative to bluebird.js, built with async / await in mind.

  •    Javascript

A functional, lightweight alternative to bluebird.js, built with async / await in mind. Functional utility library for async / await Think lodash for promises.

p-progress - Create a promise that reports progress

  •    Javascript

Useful for reporting progress to the user during long-running async operations.Same as the Promise constructor, but with an appended progress parameter in executor.

posterus - Composable async primitives (futures) with cancelation, control over scheduling, and coroutines

  •    Javascript

Posterus is a library of promise-like asynchronous primitives (futures) that support cancelation. Futures compose just like promises, but can also be cleanly shut down, aborting pending operations and freeing resources. Posterus also exposes its inner scheduling capabilities, allowing you to "opt out" of asynchrony when needed (motivating example).

proposal-async-iteration - Asynchronous iteration for JavaScript

  •    HTML

The iterator interface (introduced in ECMAScript 2015) is a sequential data access protocol which enables the development of generic and composable data consumers and transformers. Their primary interface is a next() method which returns a { value, done } tuple, where done is a boolean indicating whether the end of the iterator has been reached, and value is the yielded value in the sequence. Since both the next value in the sequence and the "done" state of the data source must be known at the time that the iterator method returns, iterators are only suitable for representing synchronous data sources. While many data sources encountered by the JavaScript programmer are synchronous (such as in-memory lists and other data structures), many others are not. For instance, any data source which requires I/O access will be typically represented using an event-based or streaming asynchronous API. Unfortunately, iterators cannot be used to represent such data sources.

when-dom-ready - $(document).ready() for the 21st century

  •    Javascript

Returns a Promise for cleaner usage, provides a Promise chain helper function and can also be used as a pure function. The Promise will resolve instantly if the DOM is already ready.There is also a little helper function, whenDomReady.resume(), that pauses the execution of a Promise chain and then resumes it with the last value once the DOM is ready.

async - Async utilities for node and the browser

  •    Javascript

Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript. Although originally designed for use with Node.js and installable via npm i async, it can also be used directly in the browser.

express-promise - Middleware for easy rendering of async Query results.

  •    Javascript

An express.js middleware for easy rendering async query.This library supports the following methods: res.send, res.json, res.render.

kneden - Transpile ES2017 async/await to vanilla ES6 Promise chains: a Babel plugin

  •    Javascript

This project is currently unmaintained. If you want to take over, feel free to fork the repo. If such a fork gets maintained or contains useful improvements, I'd be willing to merge back and give repo+npm access.WARNING: Kneden is usable, but it's also not complete yet.

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.