【发布时间】:2022-01-20 03:11:17
【问题描述】:
我只是想在这个函数中设置一个 ID:
_getLastWorkoutId() async {
try {
var snapshot = await usersRef
.doc(currentUser!.uid)
.collection('workouts')
.orderBy('workoutDate', descending: true)
.limit(1)
.snapshots()
.first;
//The execution moves to build method from here------and then returns
for (var element in snapshot.docs) {
workoutId = element.id;
setState(() {
_isWorkoutIdSet = true;
});
}
//return snapshot;
} catch (e) {
print(e.toString());
}
//return null;
}
我在 initState 中调用它:
@override
void initState() {
WidgetsBinding.instance!.addObserver(this);
super.initState();
//var snapshot = _getLastWorkoutId();
_getLastWorkoutId();
}
问题是,for循环是在调用build函数之后执行的。我不希望这种情况发生。
【问题讨论】:
-
我试过了,但它需要返回一些东西,我不确定它会如何工作,因为我没有返回任何东西。
-
我认为这不应该那么困难,因为即使是对函数的同步调用也应该有效。
标签: flutter dart async-await