如何在 Dart / Flutter 中创建 ChangeNotifier 时进行异步调用?

问题描述 投票:0回答:1
class FoldersProvider extends ChangeNotifier {
  final _folders = <Directory>[];

  FoldersProvider() {
    _addDefaultFoldersIfAccessible();
  }
// more code
}

_addDefaultFoldersIfAccessible
是一个异步函数。

我通常应该等待

Future<void>
结果

但我无法使构造函数异步,我仍然应该能够像常规 ChangeNotifier 一样实例化它,这样它仍然可以在我的 Flutter 应用程序中按预期工作。

你有什么解决办法吗?

flutter dart async-await constructor
1个回答
0
投票

您可以使用以下方法处理:

  • 如果其返回类型是
    Future<void>
    则无需等待 但让它返回
    void

  • 您可以创建一个调用并等待它的辅助方法:

    class FoldersProvider extends ChangeNotifier {
       final _folders = <Directory>[];
    
       FoldersProvider() {
    
         brookerCallerFunc();
       }
    
     void brookerCallerFunc()async=> await_addDefaultFoldersIfAccessible();
    
     // more code
     }
    

希望对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.