簡體   English   中英

Dart:如何從多個完成者創建未來

[英]Dart: How to create a future from multiple completers

我想從 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 我想將我所有的對話寫入數據庫,然后一旦所有這些都完成,就可以了解該狀態。 因此,我需要根據這些完成者列表等待或創建未來。 我怎樣才能做到這一點?

您可以使用Future.wait

return Future.wait(_completerList.map((e) => e.future));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM