singleflight 1.0.2  singleflight: ^1.0.2 copied to clipboard
singleflight: ^1.0.2 copied to clipboard
Package singleflight provides a duplicate function call suppression mechanism.
singleflight #
Package singleflight provides a duplicate function call suppression mechanism.
Example #
import 'package:singleflight/singleflight.dart';
import 'package:test/test.dart';
Future<void> main() async {
  final group = Group.create<int>();
  final futures = <Future<int>>[];
  var called = 0;
  for (int i = 0; i < 3; i++) {
    futures.add(group.doGroup("key_1", () async {
      await Future.delayed(Duration(milliseconds: 100));
      called += 1;
      return 1;
    }));
  }
  for (int i = 0; i < 2; i++) {
    futures.add(group.doGroup("key_2", () async {
      await Future.delayed(Duration(milliseconds: 100));
      called += 1;
      return 2;
    }));
  }
  final list = await Future.wait(futures);
  expect(list, [1, 1, 1, 2, 2]);
  expect(called, 2);
}