Skip to content

Commit abc6a73

Browse files
committed
Update README to new API.
1 parent dbb4119 commit abc6a73

File tree

1 file changed

+26
-25
lines changed

1 file changed

+26
-25
lines changed

README.md

+26-25
Original file line numberDiff line numberDiff line change
@@ -57,36 +57,37 @@ The `AsyncIterator` interface additionally exposes
5757
## Example: fetching Wikipedia links related to natural numbers
5858
In the example below, we create an iterator of links found on Wikipedia pages for natural numbers.
5959
```JavaScript
60-
var AsyncIterator = require('asynciterator');
60+
import https from 'https';
61+
import { resolve } from 'url';
62+
import { IntegerIterator } from 'asynciterator';
6163

6264
// Iterate over the natural numbers
63-
var numbers = new AsyncIterator.IntegerIterator({ start: 0, end: Infinity });
65+
const numbers = new IntegerIterator({ start: 0, end: Infinity });
6466
// Transform these numbers into Wikipedia URLs
65-
var urls = numbers.map(function (number) {
66-
return 'https://en.wikipedia.org/wiki/' + number;
67-
});
67+
const urls = numbers.map(n => `https://en.wikipedia.org/wiki/${n}`);
6868
// Fetch each corresponding Wikipedia page
69-
var pages = urls.transform(function (url, done) {
70-
require('https').get(url, function (response) {
71-
var page = '';
72-
response.on('data', function (data) { page += data; });
73-
response.on('end', function () { pages._push(page); done(); });
69+
const pages = urls.transform((url, done, push) => {
70+
https.get(url, response => {
71+
let page = '';
72+
response.on('data', data => { page += data; });
73+
response.on('end', () => { push(page); done(); });
7474
});
7575
});
7676
// Extract the links from each page
77-
var links = pages.transform(function (page, done) {
78-
var search = /href="([^"]+)"/g, match, resolve = require('url').resolve;
77+
const links = pages.transform((page, done, push) => {
78+
let search = /href="([^"]+)"/g, match;
7979
while (match = search.exec(page))
80-
this._push(resolve('https://en.wikipedia.org/', match[1]));
80+
push(resolve('https://en.wikipedia.org/', match[1]));
8181
done();
8282
});
8383
```
8484

8585
We could display a link every 0.1 seconds:
8686
```JavaScript
87-
setInterval(function () {
88-
var link = links.read();
89-
if (link) console.log(link);
87+
setInterval(() => {
88+
const link = links.read();
89+
if (link)
90+
console.log(link);
9091
}, 100);
9192
```
9293

@@ -114,7 +115,7 @@ The [`read` method](http://rubenverborgh.github.io/AsyncIterator/docs/AsyncItera
114115
or `null` when no item is available.
115116

116117
```JavaScript
117-
var numbers = new AsyncIterator.IntegerIterator({ start: 1, end: 2 });
118+
const numbers = new IntegerIterator({ start: 1, end: 2 });
118119
console.log(numbers.read()); // 1
119120
console.log(numbers.read()); // 2
120121
console.log(numbers.read()); // null
@@ -125,8 +126,8 @@ you should wait until the next [`readable` event](http://rubenverborgh.github.io
125126
This event is not a guarantee that an item _will_ be available.
126127

127128
```JavaScript
128-
links.on('readable', function () {
129-
var link;
129+
links.on('readable', () => {
130+
let link;
130131
while (link = links.read())
131132
console.log(link);
132133
});
@@ -139,9 +140,9 @@ An AsyncIterator can be switched to _flow_ mode by listening to the [`data` even
139140
In flow mode, iterators generate items as fast as possible.
140141

141142
```JavaScript
142-
var numbers = new AsyncIterator.IntegerIterator({ start: 1, end: 100 });
143-
numbers.on('data', function (number) { console.log('number', number); });
144-
numbers.on('end', function () console.log('all done!'); });
143+
const numbers = new IntegerIterator({ start: 1, end: 100 });
144+
numbers.on('data', number => console.log('number', number));
145+
numbers.on('end', () => console.log('all done!'));
145146
```
146147

147148
To switch back to on-demand mode, simply remove all `data` listeners.
@@ -152,11 +153,11 @@ which are preserved when the iterator is cloned.
152153
This is useful to pass around metadata about the iterator.
153154

154155
```JavaScript
155-
var numbers = new AsyncIterator.IntegerIterator();
156+
const numbers = new IntegerIterator();
156157
numbers.setProperty('rate', 1234);
157158
console.log(numbers.getProperty('rate')); // 1234
158159

159-
var clone = numbers.clone();
160+
const clone = numbers.clone();
160161
console.log(clone.getProperty('rate')); // 1234
161162

162163
numbers.setProperty('rate', 4567);
@@ -167,7 +168,7 @@ You can also attach a callback
167168
that will be called as soon as the property is set:
168169

169170
```JavaScript
170-
var numbers = new AsyncIterator.IntegerIterator();
171+
const numbers = new IntegerIterator();
171172
numbers.getProperty('later', console.log);
172173
numbers.setProperty('later', 'value');
173174
// 'value'

0 commit comments

Comments
 (0)