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 March 9, 2020 17:08
Stream method skipWhile
// asynchronous data
main() async {
Duration interval = Duration(seconds: 1);
Stream<int> stream = Stream<int>.periodic(interval,transform);
stream = stream.take(10);
stream = stream.skipWhile(condition);
await for(int i in stream){
print(i);
}
}
@AlexKenbo
AlexKenbo / main.dart
Created March 9, 2020 17:07
Stream method skip
// asynchronous data
main() async {
Duration interval = Duration(seconds: 1);
Stream<int> stream = Stream<int>.periodic(interval,transform);
stream = stream.take(10);
stream = stream.skip(2);
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);
}
}
@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 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 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 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 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 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: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);
},