(item: T)
| 3 | private resolvers: ((value: T) => void)[] = [] |
| 4 | |
| 5 | push(item: T) { |
| 6 | const resolve = this.resolvers.shift() |
| 7 | if (resolve) resolve(item) |
| 8 | else this.queue.push(item) |
| 9 | } |
| 10 | |
| 11 | async next(): Promise<T> { |
| 12 | if (this.queue.length > 0) return this.queue.shift()! |