如何在不使 main() 异步的情况下将异步对象注册到 get_it 包?

How can I register the async object to get_it package without making the main() async?

我想在 get_it 包中注册 SharedPrefrences 对象,以便从应用程序周围访问它,而不是使 main() 异步。

  1. 这样做对吗?
  2. 我该怎么做?

我就是这样做的,但是它抛出了一个异常。代码:

  appLocator.registerLazySingletonAsync<SharedPreferences>(() async {
    final sh = await SharedPreferences.getInstance();
    return sh;
  });

异常:

Unhandled Exception: 'package:get_it/get_it_impl.dart': Failed assertion: line 342 pos 14: 'instanceFactory.isReady': You tried to access an instance of SharedPreferences that was not ready yet

你有什么理由不想让你的主异步吗?使您的主要方法异步没有错。它在您将看到的大多数项目中完成。

我是一名专业的 Flutter 开发人员并且使用get_it并且它的影响为零,所以我不明白你为什么不这样做。