addTimCallback2Map static method

void addTimCallback2Map(
  1. String userData,
  2. Completer<V2TimCallback> completer
)

注册一个标准的 V2TimCallback 回调到 _apiCallbackMap。

本函数只负责"注册",清理 map 的责任由调用方承担。调用方必须配套写:

NativeLibraryManager.addTimCallback2Map(userData, completer);
completer.future.whenComplete(() => NativeLibraryManager.removeTimCallbackFromMap(userData));

这一配对模式确保 add 和 remove 在调用方代码中显式成对出现("在哪里 add, 就在哪里 remove"),可读性最高、最不容易漏。whenComplete 覆盖所有 completion 路径(native 回调、失败早返主动 complete、超时主动 complete)的 map 清理。 详情参见 removeTimCallbackFromMap 的注释。

Implementation

static void addTimCallback2Map(String userData, Completer<V2TimCallback> completer) {
  _apiCallbackMap[userData] = (Map jsonResult) {
    // 双保险:即使 closure 因任何原因被多次取出调用,也不会触发 "Bad state"。
    if (completer.isCompleted) return;
    completer.complete(V2TimCallback.fromJson(jsonResult));
  };
}