コントローラーのコンストラクターで 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;
}