rafa
Version:
Rafa.js is a Javascript framework for building concurrent applications.
27 lines (19 loc) • 781 B
Markdown
An Enumerator is an iterator that supports concurrency. Like an iterator,
it has a next method, but unlike an iterator the next method accepts a
callback function instead of returning the next value immediately.
Enumerators pass messages that wrap values so they can indicate if an
error occurred or if the value is the last value in the list (done). This
also allows enumerators to operate seamlessly with streams.
<aside>
Example of an array enumerator.
```js
var values = [];
var enu = Rafa.Enumerator.array([1,2,3]);
enu.next(message => values.push(message));
// values: [Message(1)]
enu.next(message => values.push(message));
// values: [Message(1),Message(2)]
enu.next(message => values.push(message));
// values: [Message(1),Message(2),DoneMessage(3)]
```
</aside>