flutterdartstreamdart-stream

listen for stream and print value in dart main function


I want to print data.length after listening to this stream but the program executed synchronously. How can I listen to this data stream without using the await-for syntax

void main() async {
  final file = File('assets/text_long.txt');
  final stream = file.openRead();

  stream.listen(
    (data) {
      print(data.length);
    },
  );
}

Here is the output:

Exited (1)

Solution

  • Use asFuture method.

      final file = File('assets/text_long.txt');
      final stream = file.openRead();
    
      final streamSubscription = stream.listen(
        (data) {
          print(data.length);
        },
      );
      await streamSubscription.asFuture();