Sobes.tech
Junior — Middle

Мо метавонед шарҳ диҳед, ки Stream Controller дар Dart чист ва барои чӣ истифода мешавад?

sobes.tech AI

Ҷавоб аз AI

StreamController дартда — маълумотлар ағзини (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 ўзининг ҳодиса ағзларини яратиш, уларни бошқариш ва дастурнинг асинхрон қисмлари орасида маълумотларни ўтказиш учун фойдали.