Skip to content
This repository was archived by the owner on Jun 28, 2021. It is now read-only.

Commit a884da7

Browse files
committed
async: update iterator sample
1 parent 7e6c3fc commit a884da7

File tree

1 file changed

+29
-10
lines changed

1 file changed

+29
-10
lines changed

samples/async.iterator.js

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,38 @@
11

2+
const assert = require('assert');
3+
const generate = require('csv-generate');
4+
const parse = require('..');
5+
6+
// Parameters
7+
const wait = 100;
8+
let count = 0;
9+
210
(async () => {
3-
const assert = require('assert')
4-
const parse = require('..')
5-
const generate = require('csv-generate')
6-
// Create a readable input stream, could be `fs.createReadStream`
7-
const input = generate({
8-
length: 10000
9-
})
1011
// Initialise the parser by generating random records
11-
const parser = input.pipe(parse())
12+
const parser = generate({
13+
high_water_mark: 64 * 64,
14+
length: 1000
15+
}).pipe(
16+
parse()
17+
)
18+
// Report start
19+
process.stdout.write('start\n')
1220
// Iterate through each records
13-
let count = 0
1421
for await (const record of parser) {
1522
count++
23+
// Report current line
24+
process.stdout.write(`${count} ${record.join(',')}\n`)
25+
// Fake asynchronous operation
26+
await write()
1627
}
28+
// Report end
29+
process.stdout.write('...done\n')
1730
// Validation
1831
assert.strictEqual(count, 10000)
19-
})();
32+
})()
33+
// A fake asynchronous write function
34+
const write = function(){
35+
return new Promise((resolve) => setTimeout(function(){
36+
resolve()
37+
}, 100))
38+
};

0 commit comments

Comments
 (0)