waitForDataMatch method
Waits for dataMatcher
with a timeout
.
Implementation
Future<bool> waitForDataMatch(Pattern dataMatcher,
{Duration? timeout}) async {
if (asString.contains(dataMatcher)) {
return true;
}
timeout ??= Duration(seconds: 1);
var waitTimeout = timeout;
var init = DateTime.now().millisecondsSinceEpoch;
while (true) {
var receivedData = await waitData(timeout: waitTimeout);
if (receivedData) {
var match = asString.contains(dataMatcher);
if (match) return true;
}
var now = DateTime.now().millisecondsSinceEpoch;
var elapsedTime = now - init;
var remainingTime = timeout.inMilliseconds - elapsedTime;
if (remainingTime < 1) break;
waitTimeout = Duration(milliseconds: remainingTime);
}
return false;
}