flush method
把当前队列里的所有 event 发出去。串行化:同一时刻只有一个 在飞的 flush,避免重复发送。
Implementation
Future<void> flush() async {
if (_inFlight != null) {
await _inFlight;
// 等上一次完成后,如果队列里还有新的(在那期间 enqueue 的),递归
// flush 一次。但只递归一层,避免无限。
if (_queue.isNotEmpty) return _doFlushOnce();
return;
}
return _doFlushOnce();
}