Как вернуться из then of a Future в dart

#dart #flutter

#dart #flutter

Вопрос:

У меня есть функция, которая выполняет некоторые асинхронные операции, и я хочу вернуть статус операции обратно вызывающему. Как я могу этого добиться?

 Future<bool> setData() async {
    Firestore.instance.collection("test").document('$id').setData({
      'id': 'test'
    }).then((onValue) {
      print('Data set success');
      return true;
    }).catchError((onError) {
      print('Data set Error!!!');
      return false;
    });
  }

//Calling
final status = await setData();
if(status){
  //do success
}
  

Но эта функция жалуется, что она не заканчивается инструкцией return. Какую логическую ошибку я здесь совершаю?

Комментарии:

1. Обратите внимание, что ваше async ключевое слово здесь ничего не дает, поскольку у вас нет await . Подумайте о том, чтобы переписать это, чтобы использовать await and try / catch вместо .then() и .catchError() . dartlang.org/guides/language/effective-dart /…

Ответ №1:

Вы пропускаете возврат в своей setData функции

   return Firestore.instance....