The final line of this code successfully calls the \_read method of a custom Duplex stream in node.

```
const timeContext = new TimeContext(sampleRate);
const input = new InputStream(timeContext); // Stream.Readable
const throttle = new Throttle(sampleRate); // Stream.Transform

const stackSource = [];

const stack = new StackStream(stackSource); // Stream.Duplex

input.pipe(throttle).pipe(stack);

stack.read(); // This will call the _read method of StackStream

```

Adding setTimeout to delay the stream.read() call, setTimeout's callback does NOT get called:

```
const timeContext = new TimeContext(sampleRate);
const input = new InputStream(timeContext); // Stream.Readable
const throttle = new Throttle(sampleRate); // Stream.Transform

const stackSource = [];

const stack = new StackStream(stackSource); // Stack.Duplex

input.pipe(throttle).pipe(stack);

setTimeout(() => {
    stack.read(); // This callback never gets called
}, 1000);

```