singleflight 1.0.2 copy "singleflight: ^1.0.2" 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);
}
copied to clipboard
0
likes
160
points
159
downloads

Publisher

unverified uploader

Weekly Downloads

2024.09.13 - 2025.03.28

Package singleflight provides a duplicate function call suppression mechanism.

Repository (GitHub)

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

mutex

More

Packages that depend on singleflight