请考虑以下代码:
import 'dart:async';
abstract class ClassAbstract
{
Completer<String> _onEvent1;
Completer<int> _onEvent2;
ClassAbstract()
{
_onEvent1 = new Completer<String>();
_onEvent2 = new Completer<int>();
}
Future get Event1
{
return _onEvent1.future;
}
Future get Event2
{
return _onEvent2.future;
}
}
class NormalClass extends ClassAbstract
{
NormalClass(): super()
{
_onEvent1.complete("Event1 rise");
for (int iCounter = 0; iCounter < 100; iCounter++)
{
_onEvent2.complete(iCounter);
}
}
}
void main() {
NormalClass normalClass = new NormalClass();
normalClass.Event1.then( (val) { print("Event1 rised"); } );
normalClass.Event2.then( (val) { print("Event2 rised: $val"); } );
print("Application close");
}
正如您所看到的,这是非常简单的代码,其中定义了 1 个abstract
类和 2个类Futures
,这些 2 的 getter Futures
。另一个实现此类abstract
并调用Features
.NET 事件系统的类。
问题是每当我运行此代码时,它都会因错误而失败,并for(int iCounter....)
与 error: 一致Future already complete
。
这是否意味着我只能complete
Future 一次?