0

The following code print the right string.

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

But I want to acess "genreString" outside the for loop. When I want to print it like this.

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

it would not work. I also try "return" but it does not change.

May someone have a solution

2
  • Please read: dart.dev/codelabs/async-await Commented Jan 7, 2021 at 22:54
  • final genreNames = await Future.wait(list["genre_ids"].map(DBProvider.db.getGenreName)) Commented Jan 8, 2021 at 12:06

1 Answer 1

2

This should work. Note that the function containing this code has to be async.

String genreString = '';
for (var genreID in list["genre_ids"]) {
     final value = await DBProvider.db.getGenreName(genreID);
     genreString = genreString + value + ", ";
}
print(genreString);
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.