【发布时间】:2016-04-12 22:48:28
【问题描述】:
在 Dart 中,我有一个 Completer,它返回一个 Future(承诺),并且 Future 可以在创建它的其他地方完成,例如
class SomeClass {
final Completer<bool> initializationDone = new Completer<bool>();
SomeClass() {
_doSomeAsyncInitialization();
}
void _doSomeAsyncInitialization() {
// some async initialization like a HTTP request
fetchDataFromServer().then((data) {
processData();
initializationDone.complete(true);
});
}
}
main() {
var some = new SomeClass();
some.initializationDone.future.then((success) {
// do something.
});
}
我不想要这个实际问题的解决方案,这只是我想出的一个例子来演示如何在 Dart 中使用 Completer。
什么相当于 TypeScript 中的 Dart Completer?
【问题讨论】:
-
@Etsitra 这个问题/答案没有提供太多信息。我试图弄清楚如何使用如上所示的 Promise,其中 Promise 在一个地方创建并在其他地方完成。
-
我不知道它在 TypeScript 中是如何工作的,但在纯 JavaScript 中,您可以将接受/拒绝函数存储在 Promise 回调中的某个位置。类似:
function Completer() { this.promise = new Promise((c,e)=>{this.complete = c; this.completeError = e;}); }。这将创建一个带有promise字段和两个函数的完成器:complete和completeError。 -
感谢@lrn 这有助于找到实现。
标签: asynchronous typescript dart