Это решение, которое я использую сейчас.Может ли кто-нибудь объяснить мне, почему работает, а мой вопрос нет?
AuthBloc({this.authService}) {
Observable(loginSubject.stream).withLatestFrom(
Observable.combineLatest2(
emailStream,
passwordStream,
(email, password) {
return CrendentialsDetail(email: email, password: password);
},
), (_, d) {
return d;
}).flatMap((d) {
return Observable.fromFuture(authService.loginUser(d)).doOnListen(() {
loadingSubject.add(true);
}).doOnDone(() {
loadingSubject.add(false);
});
}).listen((AuthResponse user) {
currentUserSubject.add(user);
_goToHome();
}, onError: (error) {
Scaffold.of(_context).showSnackBar(
new SnackBar(
content: new Text(error.message),
),
);
});
Observable(signUpSubject.stream).withLatestFrom(
Observable.combineLatest2(
emailStream,
passwordStream,
(email, password) {
return CrendentialsDetail(email: email, password: password);
},
), (_, d) {
return d;
}).flatMap((d) {
return Observable.fromFuture(authService.register(d)).doOnListen(() {
loadingSubject.add(true);
}).doOnDone(() {
loadingSubject.add(false);
});
}).listen((RegisterResponse res) {
Scaffold.of(_context).showSnackBar(
new SnackBar(
content: new Text(res.message),
),
);
}, onError: (error) {
Scaffold.of(_context).showSnackBar(
new SnackBar(
content: new Text(error.message),
),
);
});
}