Esta página está traducida del inglés. Si ambas difieren, la página en inglés es la correcta. Leer la página en inglés
Cuatro operaciones emiten sus resultados como eventos enviados por el servidor: generar vocabulario, enviar un mensaje al tutor, crear un plan de lección y seguir uno. Cada biblioteca convierte el flujo de eventos en el tipo de iterador propio del lenguaje y te entrega cada evento ya decodificado en un valor tipado.
Cómo termina un flujo
Cuando el trabajo ha terminado. La iteración se detiene sola en el evento final del flujo. En un plan de lección, ese evento final lleva el resultado, así que lo recibes antes de que termine el bucle.
Cuando la API informa de un error. Un error que llega dentro del flujo se lanza como error de API, del mismo tipo que uno que llegue antes.
Cuando falla la conexión. Un flujo que termina antes de su evento final, o que no envía absolutamente nada durante 120 segundos, se lanza como error de transporte.
Cuando te detienes. Cancela la llamada de la forma habitual en tu lenguaje, o deja de leer, y la conexión se cierra enseguida.
Los comentarios de keepalive y los tipos de evento que una biblioteca aún no conoce se omiten, así que una API más nueva nunca rompe una biblioteca más antigua.
Nunca se repite
Un flujo que ha entregado aunque sea un evento nunca lo reintenta la biblioteca, porque repetirlo podría gastar tu cupo dos veces. Si el flujo de un plan de lección se corta después de haber empezado, sigue el mismo plan con streamLessonPlan y el plan_id de su primer evento.