Skip to content

Instantly share code, notes, and snippets.

View AlexKenbo's full-sized avatar
🎯
We will write a chat app =)

ALEKSANDR VASILEV AlexKenbo

🎯
We will write a chat app =)
View GitHub Profile
@AlexKenbo
AlexKenbo / main.dart
Created February 9, 2020 15:22
flutter keys part 6
import 'package:flutter/material.dart';
import 'dart:math';
void main() {
runApp(new MaterialApp(home: PositionedTiles()));
}
@AlexKenbo
AlexKenbo / main.dart
Created March 9, 2020 05:57
Stream - 1
import 'dart:async';
void main() {
var streamController = StreamController();
streamController.stream.listen(
(data) => print('Got eem! $data'),
onError: (err) => print('Got an error! $err'),
onDone: () => print('Mission complete!'),
cancelOnError: false,
@AlexKenbo
AlexKenbo / main.dart
Created March 9, 2020 06:11
Stream transform
import 'dart:async';
void main() {
var controller = StreamController<num>();
// Create StreamTransformer with transformer closure
var streamTransformer = StreamTransformer<num, num>.fromHandlers(
handleData: (num data, EventSink sink) {
sink.add(data * 2);
},
@AlexKenbo
AlexKenbo / main.dart
Created March 9, 2020 06:32
Single subscription vs Broadcast streams
import 'dart:async';
void main() {
var streamController = StreamController();
streamController.stream.listen(print);
//streamController.stream.listen(print); // ошибка: поток уже слушается, разкомментируйте строку, чтобы увидеть
streamController.sink.add('Одиночная подписка: 1');
streamController.sink.add('Одиночная подписка: 2');
@AlexKenbo
AlexKenbo / main.dart
Created March 9, 2020 06:39
Stream - .addStream(), pipe()
import 'dart:async';
var stream = Stream.fromIterable([1, 2, 3, 4, 5]);
void main() {
final controller1 = new StreamController();
final controller2 = new StreamController();
controller1.addStream(stream);
@AlexKenbo
AlexKenbo / main.dart
Created March 9, 2020 09:11
Future and Stream
import 'dart:async';
Future<int> sumStream(Stream<int> stream) async {
var sum = 0;
await for (var value in stream) {
sum += value;
}
return sum;
}
Stream<int> countStream(int to) async* {
@AlexKenbo
AlexKenbo / main.dart
Created March 9, 2020 09:13
Error and simple Stream
import 'dart:async';
Future<int> sumStream(Stream<int> stream) async {
var sum = 0;
try {
await for (var value in stream) {
sum += value;
}
} catch (e) {
return -1;
@AlexKenbo
AlexKenbo / main.dart
Created March 9, 2020 16:56
Stream periodic callback
// asynchronous data
main() async {
Duration interval = Duration(seconds: 2);
Stream<int> stream = Stream<int>.periodic(interval, callback);
await for(int i in stream){
print(i);
}
}
// This callback modify the given value to even number.
int callback(int value){
@AlexKenbo
AlexKenbo / main.dart
Created March 9, 2020 16:59
Stream take
// asynchronous data
main() async {
Duration interval = Duration(seconds: 1);
Stream<int> stream = Stream<int>.periodic(interval,transform);
// Added this statement
stream = stream.take(5);
await for(int i in stream){
print(i);
}
}
@AlexKenbo
AlexKenbo / main.dart
Created March 9, 2020 17:01
Stream takeWhile
// asynchronous data
main() async {
Duration interval = Duration(seconds: 1);
Stream<int> stream = Stream<int>.periodic(interval,transform);
// Added this statement
stream = stream.takeWhile(condition);
await for(int i in stream){
print(i);
}
}