【问题标题】:Is that Future<>s pattern possible to do in dart(Flutter) as it is in JS?是否可以像在 JS 中那样在 dart(Flutter) 中实现 Future<>s 模式?
【发布时间】:2021-04-21 18:29:24
【问题描述】:

我需要使用 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&lt;Obj&gt; ),它在开始时在某处初始化,在下一行,还有另一个对象已初始化(在 JS 中类比它的 @ 987654323@函数)。这个异步函数正在等待object&lt;Obj&gt; 初始化它的数据,比如“foo”或者其他。

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

TL;DR:

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

【问题讨论】:

    标签: flutter dart flutter-futurebuilder


    【解决方案1】:
    1. 到目前为止,使用 dart 中的 Futures 是不可能做到这一点的。

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

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 2019-04-18
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      • 2022-11-20
      • 2019-11-08
      • 2018-11-12
      相关资源
      最近更新 更多