deno.land / std@0.166.0 / node / _tools / test / parallel / test-stream-backpressure.js

test-stream-backpressure.js
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// deno-fmt-ignore-file// deno-lint-ignore-file
// Copyright Joyent and Node contributors. All rights reserved. MIT license.// Taken from Node 18.12.0// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually
'use strict';
const common = require('../common');const assert = require('assert');const stream = require('stream');
let pushes = 0;const total = 65500 + 40 * 1024;const rs = new stream.Readable({ read: common.mustCall(function() { if (pushes++ === 10) { this.push(null); return; }
const length = this._readableState.length;
// We are at most doing two full runs of _reads // before stopping, because Readable is greedy // to keep its buffer full assert(length <= total);
this.push(Buffer.alloc(65500)); for (let i = 0; i < 40; i++) { this.push(Buffer.alloc(1024)); }
// We will be over highWaterMark at this point // but a new call to _read is scheduled anyway. }, 11)});
const ws = stream.Writable({ write: common.mustCall(function(data, enc, cb) { setImmediate(cb); }, 41 * 10)});
rs.pipe(ws);
std

Version Info

Tagged at
a year ago