singleflight 1.0.2
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