()
| 313 | } |
| 314 | |
| 315 | async function pump() { |
| 316 | try { |
| 317 | while (!done) { |
| 318 | const { value: batch, done: iterDone } = await iterator.next(); |
| 319 | if (iterDone) { |
| 320 | done = true; |
| 321 | readable.push(null); |
| 322 | return; |
| 323 | } |
| 324 | for (let i = 0; i < batch.length; i++) { |
| 325 | if (!readable.push(batch[i])) { |
| 326 | backpressure = PromiseWithResolvers(); |
| 327 | await backpressure.promise; |
| 328 | if (done) return; |
| 329 | } |
| 330 | } |
| 331 | } |
| 332 | } catch (err) { |
| 333 | done = true; |
| 334 | readable.destroy(err); |
| 335 | } |
| 336 | } |
| 337 | |
| 338 | return readable; |
| 339 | } |