Используйте либо с будущим - PullRequest
1 голос
/ 19 января 2020

Я хочу использовать dartz функциональный стиль и сделать что-то вроде этого:

Either<Failure, Response> result = await remoteDataSource.request() // Future<Response> request();
    .then((response) => Right(response))
    .catchError((failure) => Left(failure));

Но, похоже, я не могу сделать это:

ошибка: A Значение типа 'Right ' нельзя присвоить переменной типа 'Either '.

Итак, как я могу использовать Either с Future таким образом?

1 Ответ

0 голосов
/ 08 марта 2020

Это все о <generics>.

.then((response) => Right(response)) // this is of type Right<dynamic,User>

Вы должны предоставить компилятору всю необходимую информацию:

.then((response) => Right<Failure, Response>(response))

// or

.then((response) => right(response)) // a helper function which returns an Either
...