andarist / callbag-pull-when Goto Github PK
View Code? Open in Web Editor NEW๐ Callbag operator that pulls from source when provided listenable emits.
๐ Callbag operator that pulls from source when provided listenable emits.
First of all, I wanted to say I like how this operator allows to interfrate pullable and listenable sources to form powerful complex pipelines.
In this sense, I propose a feature request which would make it even more powerful.
With the current implementation, we can provide a listenable sampler that tells us when to pull, e.g. an interval
that emits every second.
However, there is no easy way to pull the source based on its emissions, like pulling it whenever it another item whenever we get one etc.
But this can easily be achieved by pulling the sampler whenever the input emits, possible passing along the data as well.
This simple (andfully backwards-compatible) change would open some cool possibilities.
For example, you could can pull another item after each emission, but first waiting a certain amount of time:
pipe(
range(1, 100),
pullWhen(pipe(
fromIter(function* () { // some infinite pullable
while (true) yield 0;
}),
switchMap(_ => timer(1000)),
startWith(0) // start immediately
)),
observe(x => console.log(x)) // logs 1, 2 ... with pauses of 1 sec in between
)
Another possibility would be to wait for n
emissions before pulling n
more items.
If you want, I can create a pull request for this.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.