是否可以像在 JS 中那样在 dart(Flutter) 中实现 Future<>s 模式?

Is that Future<>s pattern possible to do in dart(Flutter) as it is in JS?

我需要使用 dart 的 Futures(或其他)做这样的事情:

function Obj(){
  let resolver;

  this.promise = new Promise((resolve, reject) => {
    resolver = resolve;
  });


    //await firebase initialization or something
  setTimeout(() => {
      resolver('foo');
  }, 2000);
  
  return this;
}

var object = Obj();

(async () => {
  var result = await object.promise;
  console.log(result);
})();

这里发生了什么,我有一个对象存储在一个单例中的某个地方(在 JS 示例中它是一个 object<Obj> )在开始的某个地方初始化,在下一行,有另一个对象初始化(在JS类比其async()函数)。这个异步函数正在等待 object<Obj> 初始化它的数据,如“foo”或其他。

在 JS 中,此设置是可行的,因为 Promises 为您提供了对 resolveing 函数的引用,您可以在任何地方使用它。但是看 Dart 的 Futures 我找不到类似的东西,这很奇怪。

TL;DR:

我的目标是让第一个对象在其构造函数中异步初始化一些数据,然后以某种方式通知对该对象的所有其他引用数据已初始化。

  1. 到目前为止,在 dart 中使用 Futures 是不可能做到这一点的。

  2. 但是:我太复杂了,为此使用全局状态控制器。每当收到数据时,状态都会更新,更新后的状态很容易在引用该状态的其他对象中跟踪(通常使用流)。