incIdAsync method

Future<int> incIdAsync()

The same as incId but async.

Implementation

Future<int> incIdAsync() async {
  while (true) {
    final millis = DateTime.now().millisecondsSinceEpoch - _firstYearMillis;
    if (_previousMillis != millis) {
      _counter = 0;
      _previousMillis = millis;
    }
    if (_counter >= randomValues) {
      await Future.delayed(Duration(microseconds: 100));
      continue;
    }
    return millis * randomValues + _counter++;
  }
}