On Fri, Jun 19, 2015 at 2:46 PM, David Rajchenbach-Teller <
[email protected]> wrote:
> Out of curiosity: can these streams be used as a base for reactive
> programming? Or is it an entirely separate notion of streams?
>
I'm not an expert on reactive programming, but I believe its based around
the observables pattern. Basically a way to signal next object, complete,
and error. I believe most APIs look something like:
function handleNext() { ... }
function handleComplete() { ... }
function handleError() { ... }
data.subscribe(handleNext, handleComplete, handleError);
The WhatWG Streams proposal is a superset of observables. You can achieve
the same sort of behavior by doing something like:
data.subscribe(new WritableStream({
write: handleNext,
close: handleComplete,
abort: handleError
}));
// data then uses WritableStream.write(), .close(), and .abort() to
communicate changes
You could also use ReadableStream, but it doesn't look as similar to
observables:
var reader = data.getStream().getReader();
reader.read().then(function handleRead(value) {
handleNext(value);
return reader.read().then(handleRead);
}).catch(handleError);
reader.closed.then(handleComplete);
I think the Streams spec is more comprehensive to just observables because
it offers a pull interface in ReadableStream instead of just a push
interface. In general pull interfaces handle backpressure better.
Hope that helps.
Ben
>
> Cheers,
> David
>
> On 19/06/15 20:09, Benjamin Kelly wrote:
> > Also, I have setup a session on streams in the DOM room at Whistler:
> >
> >
> >
> http://juneworkweekwhistler2015.sched.org/event/28ff926a768953ba39a44cd36598d7f7
> >
> > Please stop by if you have questions or just want to talk about it.
> >
> > Thanks!
> >
> > Ben
>
>
> --
> David Rajchenbach-Teller, PhD
> Performance Team, Mozilla
>
>
_______________________________________________
dev-platform mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-platform