markConnectionDone method

void markConnectionDone(
  1. String id
)

标记连接完成(内部使用,子类可访问)

Implementation

void markConnectionDone(String id) {
  var completer = _connectionCompleters[id];

  // 如果 Completer 不存在,创建一个并立即完成它
  // 这样即使 waitForAllConnectionsDone() 在连接完成后才调用,也能正确等待
  if (completer == null) {
    completer = Completer<void>();
    completer.complete();
    _connectionCompleters[id] = completer;
    return;
  }

  // Completer 已存在,如果未完成则完成它
  if (!completer.isCompleted) {
    completer.complete();
  }
  // 注意:不立即移除 Completer,保留它直到 waitForAllConnectionsDone() 完成
  // 这样即使 waitForAllConnectionsDone() 在连接完成后才调用,也能正确等待
}