in sdk/server-proxies/src/utils.ts [106:132]
async next(): Promise<IteratorResult<T>> {
if (this.errorToThrow) {
throw this.errorToThrow;
}
if (this.items.length > 0) {
let item = this.items.shift()!;
return { value: item, done: false };
} else if (this.isClosed) {
return { done: true, value: undefined as any };
} else {
await new Promise<void>((resolve) => {
this.resolveCurrent = resolve;
});
if (this.errorToThrow) {
throw this.errorToThrow;
}
if (this.items.length > 0) {
let item = this.items.shift()!;
return { value: item, done: false };
} else {
return { done: true, value: undefined as any };
}
}
}