Sobes.tech
Junior — Middle

Pode explicar o que é um Stream Controller em Dart e para que é utilizado?

sobes.tech IA

Resposta da IA

StreamController em Dart é uma classe que permite criar e gerir fluxos de dados (Streams). Atua como um intermediário que pode receber eventos (dados, erros, finalização) e transmiti-los aos ouvintes (assinantes) do fluxo.

O principal objetivo do StreamController é criar um fluxo ao qual se podem adicionar eventos manualmente, e outras partes do programa podem inscrever-se nesse fluxo e reagir aos dados recebidos.

Exemplo de uso:

import 'dart:async';

void main() {
  final controller = StreamController<int>();

  // Inscrição no fluxo
  controller.stream.listen((data) {
    print('Recebido: $data');
  });

  // Adicionar dados ao fluxo
  controller.add(1);
  controller.add(2);

  // Fechar o controlador
  controller.close();
}

Assim, o StreamController é útil para criar fluxos de eventos próprios, gerenciá-los e transmitir dados entre partes assíncronas da aplicação.