Проблема с асинхронностью в dart
import 'dart:async';
import 'dart:io';
StreamSubscription? sub;
Stream? stram;
void main() {
print('Start');
stram = Stream.periodic(Duration(seconds: 1), (tick) => tick);
sub = stram?.listen((event) {
print(event);
});
print('Middle');
Future.delayed(Duration(seconds: 5), () {
sub?.cancel();
});
print('End');
}
Разбираюсь с асинхронным программированием, не могу понять, почему сначала напечатается "Start", "Middle" и "End" Вроде код должен же работать в этом случае построчно. Подскажите, где и что я упустил