我无法在控制器的构造函数中使用 Future 调用。我正在尝试在页面加载时从数据库中初始化一个列表,这需要我使用 Future。
该值是使用服务类中声明的方法检索的,我已在控制器之前的模块类中添加了该方法。
type(DataStreamService);
type(DataStreamController);
这是我的控制器的代码:
@NgController(selector: '[data-stream-controller]', publishAs: 'DataStreamCtrl')
class DataStreamController {
List<InputDataStruct> dataStream;
DataStreamController(DataStreamService dataStreamSrvc){
Future<List<InputDataStruct>> getDataStreamFtr = dataStreamSrvc.getDataStream();
getDataStreamFtr.then((value){
dataStream = value;
})
.catchError(print("Error occured"));
}
}
不推荐在构造函数中使用 Future。如果不是我在这里想念什么。
这是 dataStreamSrvc.getDataStream() 代码:
Future<List<InputDataStruct>> getDataStream(){
List<InputDataStruct> dataStream = [];
Completer completer = new Completer();
Future getSomeInfoFtr = myDbHelper.getSomeInfo();
getSomeInfoFtr.then((infoAndList){
for(String info in infoAndList){
inputDataStruct = new InputDataStruct(info);
dataStream.add(inputDataStruct);
}
});
completer.complete(dataStream);
return completer.future;
}