Comments (2)
Actually in Kefir all observables support multiple subscribers. In your example it might seem otherwise because your stream emits events synchronously, meaning there's no delay between activation (first subscription) and emitting all events. So first subscriber receives the events, but by the time you add a second one they are already emitted.
If your stream looked like this:
let s = Kefir.stream(obs=>{
let i = 0;
const intervalIt = setInterval(() => {obs.emit(i); i++})
return () => {
clearInterval(intervalId);
}
})
Then you could do the following and both subscribers would get the events:
s.onValue(v=>{
console.log('+++++ value',v)
}) //1st subscriber
s.observe(v=>{
console.log('----- value',v)
}) //2nd subscriber
More on it here https://kefirjs.github.io/kefir/#current-in-streams
from kefir.
Nice, thanks for explanation. =)
So, I'm using streams almost everywhere, and like "can't guarantee" - my streams will require async, or not (basically, thats why i'm useing streams - they unify for me sync/async), so pool gives me like "guarantied solution" for some situations, when sources can be syncronous and i need deliver event to multiple subscibers (and "end" is not required, ofc)
So, may be point somehow this behavor in docs?
from kefir.
Related Issues (20)
- KefirJS and WebSockets HOT 4
- Only `sampledBy` is past tense
- Current state policies HOT 2
- Idea: Usable as AsycInterator
- Proposal to add `fromProperty` static function HOT 15
- Static Land interop `Observable` definition is wrong HOT 5
- Shouldn't a property only emit on "new values"? Proposing `onChange()` HOT 1
- Missing type for `unplug`
- Maintain TypeScript types? HOT 4
- Stop bundling `symbol-observable`
- TypeError: this._emitValue is not a function HOT 1
- Make subscription available inside callback HOT 8
- A big "Thank You" to Kefir developers HOT 1
- How to import Kefir within Rollup library HOT 3
- groupBy function HOT 8
- flatMapConcat should work when a spawned observable ends synchronously on activation
- Synchronous emit in flush method of debounce produces incorrect result HOT 8
- Is it possible to not activate a staled observable when reactivating flatMapLatest? HOT 8
- Russian docs translate
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kefir.