Flutter future.then() returns 空字符串
Flutter future.then() returns empty string
以下代码打印正确的字符串。
String genreString = '';
for (var genreID in list["genre_ids"]) {
DBProvider.db.getGenreName(genreID).then((value) {
genreString = genreString + value + ", ";
print(genreString);
});
}
但我想在 for 循环之外访问“genreString”。当我想这样打印的时候。
String genreString = '';
for (var genreID in list["genre_ids"]) {
DBProvider.db.getGenreName(genreID).then((value) {
genreString = genreString + value + ", ";
});
}
print(genreString);
这是行不通的。我也试过“return”,但它没有改变。
请问有人有解决办法吗
这应该有效。请注意,包含此代码的函数必须是 async
.
String genreString = '';
for (var genreID in list["genre_ids"]) {
final value = await DBProvider.db.getGenreName(genreID);
genreString = genreString + value + ", ";
}
print(genreString);
以下代码打印正确的字符串。
String genreString = '';
for (var genreID in list["genre_ids"]) {
DBProvider.db.getGenreName(genreID).then((value) {
genreString = genreString + value + ", ";
print(genreString);
});
}
但我想在 for 循环之外访问“genreString”。当我想这样打印的时候。
String genreString = '';
for (var genreID in list["genre_ids"]) {
DBProvider.db.getGenreName(genreID).then((value) {
genreString = genreString + value + ", ";
});
}
print(genreString);
这是行不通的。我也试过“return”,但它没有改变。
请问有人有解决办法吗
这应该有效。请注意,包含此代码的函数必须是 async
.
String genreString = '';
for (var genreID in list["genre_ids"]) {
final value = await DBProvider.db.getGenreName(genreID);
genreString = genreString + value + ", ";
}
print(genreString);