Как работать с Callback?
Как только начал я осваивать dart/flutter возникла одна проблема. Как можно передать данные из одного метода в другой? Как я понял, я пытаюсь вынести переменную из асинхронной ф-ии. И проблема в том, что значение переменной за пределы скобок равна нулю. Знаю с помощью callback функции можно передать данные в другой метод, но совсем не понимаю как работают callback в dart.
Future<Book> getBooks() async {
Book book = new Book();
FirebaseDatabase.instance
.reference()
.child("posts")
.onValue
.listen((Event event) {
Map<String, dynamic> myMap =
new Map<String, dynamic>.from(event.snapshot.value);
myMap.forEach((key, value) {
book.title = value["user"];
onGetTitle();
}); // здесь переменная имеет значении
return book;
});
// а вот здесь равна нулю.
return book;
}