Я пытаюсь добавить асинхронный обратный вызов к модели в приложении флаттера, чтобы модель могла дать представлению возможность показать какой-то диалог, прежде чем модель продолжит работу. Однако я не могу найти асинхронный обратный вызов. Я вижу VoidedCallback, но не вижу ничего похожего на Callback<Future>.





VoidCallback — это просто подпись для обратного вызова метода без параметров.
typedef VoidCallback = void Function();
Вы можете создать свой собственный:
typedef FutureCallback = void Function(Future);
Или вы можете просто использовать final Function(Function) foo = yourcallback напрямую.
Можете ли вы подробно рассказать, как использовать решение?
Я думаю, что в приведенном выше примере асинхронная версия VoidCallback должна быть typedef FutureCallback = Future<void> Function();, а не void Function(Future).
У Flutter есть асинхронная версия VoidCallbacktypedef, а именно AsyncCallback. См.: https://api.flutter.dev/flutter/foundation/AsyncCallback.html
.Then((value){…}) — это обратный вызов, который вызывается, когда future успешно завершается (со значением).
Future<void> main() async {
print('Fetching user order...');
print(await createOrderMessage().then((value) {
print(value);
return value;
}));
}
Спасибо! Это сработало для меня:
typedef FutureCallback = Future Function();