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);