update JS interop to accept requestId for VoidCallback

This commit is contained in:
Nick Fisher
2025-05-13 17:59:09 +08:00
parent dc5cdcb7e1
commit 8c78e8e629
2 changed files with 588 additions and 555 deletions

View File

@@ -270,19 +270,14 @@ void Function(int) _voidCallback = (int requestId) {
final _voidCallbackPtr = _voidCallback.addFunction();
Future<void> withVoidCallback(
Function(Pointer<NativeFunction<Void Function()>>) func) async {
Future<void> withVoidCallback(
Function(int, Pointer<NativeFunction<Void Function(int)>>) func) async {
final completer = Completer();
final requestId = _completers.length;
_completers[requestId] = completer;
final fn = () {
completer.complete();
};
final ptr = fn.addFunction();
func.call(ptr.cast());
func.call(requestId, _voidCallbackPtr.cast());
while (!completer.isCompleted) {
_NativeLibrary.instance._execute_queue();
await Future.delayed(Duration(milliseconds: 1));