Junior — Middle
Кадом усулҳо метавонанд барои иҷрои ҷараёни маълумот дар Dart истифода шаванд?
sobes.tech AI
Ҷавоб аз AI
Дар Dart-да маълумот потокҳоро (streams) амалӣ кардан мумкин аст бо истифода аз чанд роҳ:
- Stream ва StreamController — роҳи асосӣ барои кор бо потокҳо.
StreamControllerимкон медиҳад, ки поток эҷод шавад, ки ба он ҳодисаҳо илова кардан мумкин аст, ваStreamхуди поток мебошад, ки ба он обуна шудан мумкин аст.
final controller = StreamController<int>();
controller.stream.listen((data) {
print('Гирифт: $data');
});
controller.add(1);
controller.add(2);
controller.close();
- Генераторҳои асинхронӣ (async)* — имкон медиҳанд, ки потокҳои маълумотро бо истифода аз функсияе, ки
Streamбармегардонад ва калимаи калидииyieldбарои эъломи арзишҳо истифода мешавад, эҷод кард.
Stream<int> countStream(int to) async* {
for (int i = 1; i <= to; i++) {
yield i;
await Future.delayed(Duration(seconds: 1));
}
}
countStream(3).listen(print);
- Истифодаи потокҳои тайёр аз китобхонаҳо — масалан,
Stream.periodicбарои ҳодисаҳои давомдор.
Бинобар ин, усулҳои асосӣ истифодаи StreamController барои эҷод ва идоракунии потокҳо ва генераторҳои асинхронӣ барои эҷоди потокҳо бо логикаи истеҳсоли маълумот мебошанд.