()
| 209 | } |
| 210 | |
| 211 | next(): Promise<T | undefined> { |
| 212 | if (this.queue.length > 0) { |
| 213 | return Promise.resolve(this.queue.shift()) |
| 214 | } |
| 215 | if (this.closed) { |
| 216 | return Promise.resolve(undefined) |
| 217 | } |
| 218 | return new Promise(resolve => this.waiters.push(resolve)) |
| 219 | } |
| 220 | |
| 221 | close(): void { |
| 222 | if (this.closed) { |