【发布时间】: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<Obj> ),它在开始时在某处初始化,在下一行,还有另一个对象已初始化(在 JS 中类比它的 @ 987654323@函数)。这个异步函数正在等待object<Obj> 初始化它的数据,比如“foo”或者其他。
在 JS 中,这种设置是可能的,因为 Promise 为您提供了可以在任何地方使用的 resolveing 函数的引用。但是看着 Dart 的 Futures 我找不到类似的东西,这很奇怪。
TL;DR:
我的目标是让第一个对象在其构造函数中异步初始化一些数据,然后以某种方式通知对该对象的所有其他引用数据已被初始化。
【问题讨论】:
标签: flutter dart flutter-futurebuilder