for await()

in server/aws-lsp-codewhisperer/src/language-server/agenticChat/agenticChatController.ts [2040:2068]


        for await (const chatEvent of response.generateAssistantResponseResponse!) {
            if (abortSignal?.aborted) {
                throw new Error('Operation was aborted')
            }
            if (chatEvent.assistantResponseEvent) {
                await this.#showUndoAllIfRequired(chatResultStream, session)
            }
            const result = chatEventParser.processPartialEvent(chatEvent)

            // terminate early when there is an error
            if (!result.success) {
                await streamWriter.close()
                return result
            }

            // make sure to save code reference events
            if (chatEvent.assistantResponseEvent || chatEvent.codeReferenceEvent) {
                await streamWriter.write(result.data.chatResult)
            }

            if (chatEvent.toolUseEvent) {
                await this.#showLoadingIfRequired(
                    chatEvent.toolUseEvent,
                    streamWriter,
                    toolUseStartTimes,
                    toolUseLoadingTimeouts
                )
            }
        }