【发布时间】:2021-11-11 16:05:25
【问题描述】:
我正在尝试使用 for 循环设置许多 Firestore 文档,并使用递增变量,但这个变量不像它那样递增... 这是代码
int debutRdv = 0;
).then((valueEnregistrement) => {
for(PrestationSelected prestaSelect in prestaSelected){
rdvService.createRdv(
cli: cli,
debutRdv: debutRdv,
heureCreneau: heureCreneau,
prestaSelect: prestaSelect,
valueEnregistrement: valueEnregistrement
)
.then((valueRdv) => {
for (int i = 0; i < prestaSelect.duree; i += 15){
rdvService.createCreneau(
debutRdv: debutRdv,
heureCreneau: heureCreneau,
i: i,
prestaSelect: prestaSelect,
valueRdv: valueRdv
)
},
debutRdv = debutRdv += prestaSelect.duree
})
},
事实是变量首次亮相Rdv 并没有像我想要的那样递增。它在第二个循环 (createCreneau) 中正确递增,但在第一个循环 (createRdv) 中不正确。这就像函数 createRdv 在运行“then”之前运行的次数与我的列表 prestaSelected 的长度一样多...... 我真的不明白发生了什么。
例如结果应该是:
*debutRdv Rdv1 = 0
debutRdv Rdv1Creneau 1 = 0
debutRdv Rdv1Creneau 2 = 0
debutRdv Rdv2 = 30
debutRdv Rdv2Creneau 1 = 30
debutRdv Rdv2Creneau 2 = 30*
但它是:
*debutRdv Rdv1 = 0
debutRdv Rdv1Creneau 1 = 0
debutRdv Rdv1Creneau 2 = 0
debutRdv Rdv2 = 0
debutRdv Rdv2Creneau 1 = 30
debutRdv Rdv2Creneau 2 = 30*
请帮忙。
【问题讨论】:
-
只是一个建议:我发现 async/await 语法比 'then' 语法更容易调试和阅读。我建议进行此更改,因为您使用 For 循环嵌套了 Futures,这将很快变得复杂。
标签: flutter for-loop google-cloud-firestore future