timerOnceBetween static method
do nothing if the callback is already in the list and will get called after M to N ms
Implementation
static void timerOnceBetween(Function callback, int after, int before) {
var desiredTime50_0 =
(((DateTime.now()).millisecondsSinceEpoch + after) / 50).ceil();
var desiredTime50_1 =
(((DateTime.now()).millisecondsSinceEpoch + before) / 50).ceil();
if (_functionsMap.containsKey(callback)) {
var existTf = _functionsMap[callback]!;
if (existTf.ts50 >= desiredTime50_0 && existTf.ts50 <= desiredTime50_1) {
return;
} else {
existTf.remove(callback);
}
}
if (desiredTime50_1 <= _lastTimeRun) {
callLater(callback);
return;
}
var tf = _getTimerFunctions(desiredTime50_1);
tf.add(callback);
_functionsMap[callback] = tf;
}