我想用dart / flutter中的多个完成者来创造未来。
Future getAndWriteToDB(conversations){
List<Completer> _completerList = List();
for (var i = 0; i < conversations.length; i++) {
final conversation = conversations[i];
_completerList.add(Completer());
SocketService()
.listenForEvent('mylistenerkey')
.then((data) {
_messagesDao.insertMessages(messages).then((result) {
if (result == false) {
print("writing to db for message failed");
} else {
_completerList[i].complete(true);
}
});
}
});
}
return {{ wait for these completers complete event }}
}
只要有此事件,我的SocketService().listenForEvent
就会被呼叫。我想将所有对话都写入数据库,然后在所有对话完成后就知道该状态。
因此,我需要等待或根据这些完成者列表创建未来。我该如何实现?