我想从一个方法中得到两个字符串,但里面的计算需要几秒钟,所以我不知道如何在计算后返回两个值并将它们分配给一个List或两个Strings。
我是这样调用这个方法的--------。
@override
void initState() {
var calc = new Calculation().resultCalculation(dateOfBirth: dob, timeOfBirth: tob, gender: genderId, city: cities);
results = calc;
print(results);
print(results[0]);
super.initState();
}
我是这样返回值的
return [bornDay, bornCity];
如果有人能给我一个更好的方法来调用这个方法并返回两个值,那就太好了 :)
需要时间的方法 -
cityCalculate() async {
DateTime earlyTime;
DateTime lateTime;
String city;
QuerySnapshot snaps =
await Firestore.instance.collection('cities').getDocuments();
for (var docs in snaps.documents) {
earlyTime = DateTime.parse(docs['beforeTime']);
lateTime = DateTime.parse(docs['afterTime']);
city = docs['city'];
if (birthDayTime.isAfter(earlyTime) && birthDayTime.isBefore(lateTime)) {
bornCity = city;
break;
}
}
}
你可以做到这一点的最好方法是使用一个 Map
或 List
如你所做的)。
return {"bornDay": bornDay, "bornCity" bornCity"}
return [bornDay, bornCity]
像这样调用函数
@override
void initState() async{
var calc = await Calculation().resultCalculation(dateOfBirth: dob, timeOfBirth: tob, gender: genderId, city: cities);
results = calc;
print(results);
print(results[0]);
super.initState();
}