pick static method
Implementation
static Future<EventFractal> pick(
String h, [
void Function(String h)? miss,
]) async {
//List<String> picking = [];
var fractal = EventFractal.storage[h];
if (fractal != null) return fractal;
final rq = EventFractal.storage.request(h);
if (picking.containsKey(h)) {
return rq;
}
rq.then((f) {
picking.remove(f.hash);
});
picking[h] = miss;
timer.hold(() async {
if (picking.isEmpty) return true;
final r = await EventFractal.controller.select(
fields: ['hash', 'type'],
where: {
'hash': [...picking.keys]
},
//includeSubTypes: true,
);
for (var m in r) {
final h = m['hash'];
picking.remove(h);
}
for (final entry in picking.entries) {
final miss = entry.value;
if (miss != null) miss(entry.key);
}
FilterF.collect(r);
return true;
}, 20);
return rq;
}