platform<T> function
Future<T>
platform<T>(- {_FutureCallback<T>? android,
- _FutureCallback<T>? ios}
)
Implementation
Future<T> platform<T>({
_FutureCallback<T>? android,
_FutureCallback<T>? ios,
}) async {
// 方法单位的释放池, 如果需要的时候可以在这里直接释放, 不使用这个释放池的话可以使用[ScopedReleasePool]
final releasePool = <Ref?>{};
try {
if (android != null && Platform.isAndroid) {
return await android(releasePool);
} else if (ios != null && Platform.isIOS) {
return await ios(releasePool);
} else {
return Future.value();
}
} catch (e) {
return Future.error(e);
} finally {
if (releasePool.isNotEmpty) {
await releasePool.whereType<Ref>().release_batch();
releasePool.clear();
// remove all local object from global object pool
gGlobalReleasePool.removeAll(releasePool);
}
}
}