Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter flatter future.then()返回空字符串_Flutter_Dart_Future - Fatal编程技术网

Flutter flatter future.then()返回空字符串

Flutter flatter future.then()返回空字符串,flutter,dart,future,Flutter,Dart,Future,下面的代码打印正确的字符串 String genreString = ''; for (var genreID in list["genre_ids"]) { DBProvider.db.getGenreName(genreID).then((value) { 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);
这是行不通的。我也尝试“返回”,但它没有改变


可能有人有一个解决方案

这应该行得通。请注意,包含此代码的函数必须是
async

String genreString = '';
for (var genreID in list["genre_ids"]) {
     final value = await DBProvider.db.getGenreName(genreID);
     genreString = genreString + value + ", ";
}
print(genreString);

这应该行得通。请注意,包含此代码的函数必须是
async

String genreString = '';
for (var genreID in list["genre_ids"]) {
     final value = await DBProvider.db.getGenreName(genreID);
     genreString = genreString + value + ", ";
}
print(genreString);

请阅读:
final genreNames=wait Future.wait(列表[“流派ID”].map(DBProvider.db.getGenreName))
请阅读:
final genreNames=wait Future.wait(列表[“流派ID”].map(DBProvider.db.getGenreName))