【问题标题】:How to create an async callback in Flutter/Dart?如何在 Flutter/Dart 中创建异步回调?
【发布时间】:2019-09-20 10:05:48
【问题描述】:

我正在尝试向 Flutter 应用程序中的模型添加异步回调,以便模型可以让视图有机会在模型继续运行之前显示一些对话框。但是,我似乎找不到异步回调。我看到了VoidedCallback,但我没有看到像Callback<Future> 这样的东西。

【问题讨论】:

    标签: flutter dart asynchronous callback


    【解决方案1】:

    Flutter 有一个异步版本的 VoidCallback typedef,即 AsyncCallback。见:https://api.flutter.dev/flutter/foundation/AsyncCallback.html

    【讨论】:

      【解决方案2】:

      VoidCallback只是一个没有参数的方法回调的签名。

      typedef VoidCallback = void Function();
      

      您可以创建自己的:

      typedef FutureCallback = void Function(Future);
      

      或者您可以直接使用final Function(Function) foo = yourcallback

      【讨论】:

      • 谢谢!这对我有用:typedef FutureCallback = Future Function();
      • 你能详细说说如何使用解决方案吗?
      • 我认为在上面提到的例子中,VoidCallback 的异步版本应该是typedef FutureCallback = Future<void> Function();,而不是void Function(Future)
      【解决方案3】:

      .Then((value){…}) 是在future 成功完成时调用的回调(带有值)。

      Future<void> main() async {
        print('Fetching user order...');
        print(await createOrderMessage().then((value) {
          print(value);
          return value;
        }));
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-20
        • 2017-01-09
        • 1970-01-01
        • 2020-11-04
        • 2019-06-28
        • 2017-07-02
        • 2020-10-21
        相关资源
        最近更新 更多