gpt4 book ai didi

dart - 当Complete首先触发时,Dart嵌套 future

转载 作者:行者123 更新时间:2023-12-03 03:27:37 24 4
gpt4 key购买 nike

我需要进行一系列数据库查询,每个查询都返回结果流。一旦收集并发送了所有信息,就需要最后发送“完成”消息。在我的代码中,“sendCompleteMessageToClient”首先发送。

 Future.forEach(centerLdapNames.values, (center) {
db
.collection(center)
.find({'date': {'\$gte': json['from'], '\$lt': json['to']}})
.forEach(sendAppointmentToClient);
}).whenComplete(() => sendCompleteMessageToClient("all"));

如何等待所有“sendAppointmentToClient”正确完成?

最佳答案

我想你只是想念 future 的回归

Future.forEach(centerLdapNames.values, (center) {
return db // <== always return the returned future from calls to async functions to keep the chain connected
.collection(center)
.find({'date': {'\$gte': json['from'], '\$lt': json['to']}})
.forEach(sendAppointmentToClient);
}).whenComplete(() => sendCompleteMessageToClient("all"));

如果使用wait,这些调用可能会并行执行,而不是一个接一个地执行

Future.wait(centerLdapNames.values.map((center) { ...}, eagerError: false)
.whenComplete((...))

关于dart - 当Complete首先触发时,Dart嵌套 future ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29118168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com