0

我在 Dart 中有一个函数,我想返回一个 Either 值来传播一个失败(左)或一个对象(右)。这些数据依赖于 Dart 中类似 this 的函数中的不同 Either 值,但目前它返回 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 对象

4

1 回答 1

0

null如果函数没有 return 语句,Dart 会隐式返回。

https://dart.dev/tools/diagnostic-messages#missing_return

因此,只需添加一个 return 语句就可以解决您的问题。

于 2020-07-03T18:57:21.603 回答