Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

net::ERR_HTTP2_PROTOCOL_ERROR 200 (OK) and abortController don't work

Abierto
#78 4 comentarios 3 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
typescript
Área
api

Línea de trabajo

Comienza con la llamada proporcionada a fetchEventSource e inspecciona cómo interactúan su callback onerror, la señal de AbortController y el comportamiento de reintento durante una solicitud de streaming. Reproduce el escenario repetido net::ERR_HTTP2_PROTOCOL_ERROR y verifica que abortar en onerror detiene las solicitudes posteriores y la entrega del stream.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

const abortController = new AbortController()
  await fetchEventSource(
    `https://xxx/xx/xx/xx?query=${questionSended}&dialog_id=${this.currentDialogID}&is_stream=1`,
    {
      headers: {
        Authorization: userinfo.token
      },
      signal: abortController.signal,
      openWhenHidden: true,
      onopen: async response => {
        console.log('onopen', response)
        if (response.status !== 200) {
          throw new Error(`${response.status}(${response.statusText})`)
        }
        return
      },
      onmessage: res => {
        const data = JSON.parse(res.data)
        console.log(data)
        if (data.plugin_id) return
        if (data.error_code) {
          throw new Error(`${data.error_code}(${data.error_msg})`)
        }
        if (data.prompt) {
          this.relatedQuestion = data.prompt
        } else {
     
        }
      },
      onclose: () => {
        console.log('closed')
      },
      onerror: err => {
        console.log('err', err)
        if (abortController.signal.aborted) return
        this.dialogDetailList[contextIndex].answer =
          'error'
        abortController.abort()
      }
    }
  )

The error occured in the middle of request, and the browser start another request to continue receiving stream data. And the same error occured. such back and forth
And l can read true value of 'abortController.signal.aborted' in error callback, but the request still continue

Lenguaje dominante
TypeScript
Estrellas
2.9k
Forks
197
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Azure/fetch-event-source

Todos los issues de Azure/fetch-event-source

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.