event_listener 0.2.0 copy "event_listener: ^0.2.0" to clipboard
event_listener: ^0.2.0 copied to clipboard

A dart package implements NodeJS style event listening functionality

example/example.dart

import 'package:event_listener/event_listener.dart';
import 'package:http/http.dart' as http;

Future<void> main() async {
  var downloadEmitter = EventListener();
  var fileToDownload =
      'http://ipv4.download.thinkbroadband.com/5MB.zip'; //Test file

  final client = http.Client();
  var response = client.send(http.Request('GET', Uri.parse(fileToDownload)));
  var downloaded = 0;

  var logger = (percent) {
    print('Percent: $percent%');
  };

  downloadEmitter.on('download', logger);

  response.asStream().listen((http.StreamedResponse r) {
    r.stream.listen((List<int> chunk) {
      downloadEmitter.emit(
          'download', (downloaded / r.contentLength! * 100).floor());
      downloaded += chunk.length;
    }, onDone: () async {
      downloadEmitter.emit(
          'download', (downloaded / r.contentLength! * 100).floor());
      downloadEmitter.removeEventListener('download', logger);
      print('Download complete removed listener');
      return;
    });
  });
}
1
likes
130
pub points
68%
popularity

Publisher

verified publisherbehemehal.net

A dart package implements NodeJS style event listening functionality

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

More

Packages that depend on event_listener