Sobes.tech
Junior — Middle

Можете ли да обясните какво е Stream Controller в Dart и за какво се използва?

sobes.tech AI

Отговор от AI

StreamController в Dart е клас, който позволява създаването и управлението на потоци от данни (Streams). Той действа като посредник, който може да приема събития (данни, грешки, завършване) и да ги предава на слушателите (абонатите) на потока.

Основната цел на StreamController е да създаде поток, към който може ръчно да се добавят събития, а други части от програмата могат да се абонират за този поток и да реагират на входящите данни.

Пример за използване:

import 'dart:async';

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

  // Абониране за потока
  controller.stream.listen((data) {
    print('Получено: $data');
  });

  // Добавяне на данни към потока
  controller.add(1);
  controller.add(2);

  // Затваряне на контролера
  controller.close();
}

По този начин, StreamController е полезен за създаване на собствени потоци от събития, управление им и предаване на данни между асинхронните части на приложението.