#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
andtry
/catch
вместо.then()
и.catchError()
. dartlang.org/guides/language/effective-dart /…
Ответ №1:
Вы пропускаете возврат в своей setData
функции
return Firestore.instance....