next: async()

in lib/ChatCompletionStream.ts [656:673]


      next: async (): Promise<IteratorResult<ChatCompletionChunk>> => {
        if (!pushQueue.length) {
          if (done) {
            return { value: undefined, done: true };
          }
          return new Promise<ChatCompletionChunk | undefined>((
            resolve,
            reject,
          ) => readQueue.push({ resolve, reject })).then((
            chunk,
          ) => (chunk
            ? { value: chunk, done: false }
            : { value: undefined, done: true })
          );
        }
        const chunk = pushQueue.shift()!;
        return { value: chunk, done: false };
      },