Вернуть объект Either из другого объекта Either в Dartz
У меня есть функция в Dart, в которой я хотел бы вернуть значение Either для распространения ошибки (слева) или объекта (справа). Эти данные зависят от другого значения Either в функции, похожей на это в Dart, но в настоящее время он возвращает null, даже если вход Either возвращает (правое) значение.
Future<Either<Failure, User>> getUser(String uid) async {
Either<Failure, DocumentSnapshot> document;
document = await _database.getDocumentById(uid);
// _database.getDocument function returns a Either<Failure, Document> object
// But when I fold the value to propagate the failure or return an User, I get null as
//return
document.fold((failure) => Left(failure), (document) => Right(User.fromJson(document.data)));
}
Функция User.fromJson была протестирована и работает хорошо, но я не могу вернуть объект Either
1 ответ
Dart неявно возвращает null
если функция не имеет оператора возврата.
https://dart.dev/tools/diagnostic-messages
Поэтому простое добавление оператора возврата должно решить вашу проблему.