Fiquei com dúvida na lógica relativa ao andamento do tempo do Stream. O contador para até que haja a interação do usuário com o input? Haveria alguma maneira do tempo correr livremente?
Fiquei com dúvida na lógica relativa ao andamento do tempo do Stream. O contador para até que haja a interação do usuário com o input? Haveria alguma maneira do tempo correr livremente?
Olá, Gabriel!
Pelo que entendi da sua dúvida, você está com dificuldade em entender como funciona o andamento do tempo em um Stream, certo? Vou tentar te explicar!
No contexto do curso Dart: entendendo assincronismo, o tempo do Stream é controlado pela função myStream
que foi criada. Essa função recebe dois parâmetros: interval
, que determina o intervalo de tempo em segundos entre cada contagem, e maxCount
, que determina a contagem máxima.
O tempo do Stream é controlado por um loop while
que vai incrementando a variável i
a cada iteração. Dentro desse loop, é utilizado o await Future.delayed(Duration(seconds: interval))
para aguardar o tempo definido no interval
antes de prosseguir para a próxima iteração.
O Stream continua contando até que a condição i != maxCount
seja falsa. Quando essa condição é falsa, significa que a contagem máxima foi atingida e o Stream é finalizado.
No caso do exemplo fornecido, o Stream é utilizado para controlar o tempo de uso do KakoBOT. A cada segundo, o Stream emite um valor que indica o tempo de uso do KakoBOT. Quando a contagem máxima de 10 segundos é atingida, o Stream é finalizado e o KakoBOT é desligado.
Espero ter ajudado e bons estudos!