*[<Null safety>](https://dart.dev/null-safety)*
Future<List<DiagnosticsData<METADATA>>> snapshot ({bool acceptSnapshot(List<DiagnosticsData<METADATA>> snapshot)?, Duration attemptDelay = const Duration(milliseconds: 100), int? maxAttempts = 200})
Obtain a snapshot of the current inspect data as constrained by
selector
.
The return value is the json object returned by FormattedContent.json
as
parsed by jsonDecode
.
If acceptSnapshot
is not null, this method returns a snapshot once
acceptSnapshot
returns true. If maxAttempts
is not null, at most
maxAttempts
are made to obtain a snapshot. delay
controls the delay
between snapshot attempts.
Implementation
Future<List<DiagnosticsData<METADATA>>> snapshot(
{bool acceptSnapshot(List<DiagnosticsData<METADATA>> snapshot)?,
Duration attemptDelay = const Duration(milliseconds: 100),
int? maxAttempts = 200}) async {
for (var attempts = 0;
maxAttempts == null || attempts < maxAttempts;
attempts++) {
final snapshot = await _snapshotAttempt;
if (acceptSnapshot == null || acceptSnapshot(snapshot)) {
return snapshot;
}
await Future.delayed(attemptDelay);
}
throw Exception('snapshot failed');
}