Esta página é uma tradução do inglês. Se as duas diferirem, a página em inglês é a correta. Ler a página em inglês
Quatro operações transmitem os seus resultados como eventos enviados pelo servidor: gerar vocabulário, enviar uma mensagem ao tutor, criar um plano de lição e acompanhar um. Cada biblioteca transforma o stream de eventos no iterador próprio da linguagem e entrega-lhe cada evento já descodificado num valor tipado.
Como termina um stream
Quando o trabalho está concluído. A iteração para sozinha no evento final do stream. Num plano de lição, esse evento final contém o resultado, pelo que o recebe antes de o ciclo terminar.
Quando a API comunica um erro. Um erro que chega dentro do stream é lançado como erro da API, do mesmo tipo de um que chegue antes dele.
Quando a ligação falha. Um stream que termina antes do seu evento final, ou que não envia absolutamente nada durante 120 segundos, é lançado como erro de transporte.
Quando para. Cancele a chamada da forma habitual na sua linguagem, ou deixe de ler, e a ligação fecha-se prontamente.
Os comentários de keepalive e os tipos de evento que uma biblioteca ainda não conhece são ignorados, pelo que uma API mais recente nunca estraga uma biblioteca mais antiga.
Nunca repetido
Um stream que tenha entregado nem que seja um evento nunca é repetido pela biblioteca, porque repeti-lo poderia gastar a sua quota duas vezes. Se o stream de um plano de lição se interromper depois de ter começado, acompanhe o mesmo plano com streamLessonPlan e o plan_id do seu primeiro evento.