示例#1
0
 public static Future <Try <To> > flatMapT <From, To>(
     this Future <Try <From> > future, Fn <From, Future <To> > mapper
     )
 {
     return(future.flatMap(t => t.fold(
                               from => mapper(from).map(F.scs),
                               err => Future.successful(F.err <To>(err))
                               )));
 }
示例#2
0
 public static Future <Either <Err, To> > flatMapE <From, To, Err>(
     this Future <Either <Err, From> > future, Fn <From, Future <Either <Err, To> > > mapper
     )
 {
     return(future.flatMap(e => e.fold(
                               err => Future.successful(Either <Err, To> .Left(err)),
                               mapper
                               )));
 }
示例#3
0
 public static Future <Option <B> > flatMapO <A, B>(
     this Future <Option <A> > future, Fn <A, Future <Option <B> > > mapper
     )
 {
     return(future.flatMap(opt => opt.fold(
                               () => Future.successful(F.none <B>()),
                               mapper
                               )));
 }
示例#4
0
 public void SuccessfulToSuccessful()
 {
     successful.flatMap(successfulMapper).shouldBeOfSuccessfulType(2);
 }
示例#5
0
 public static Future <A> flatten <A>(this Future <Future <A> > future) =>
 future.flatMap(_ => _);
示例#6
0
 public static Future <A> extract <A>(this Future <Option <A> > optFuture) =>
 optFuture.flatMap(opt => opt.fold(Future <A> .unfulfilled, Future.successful));
示例#7
0
 public static Future <C> SelectMany <A, B, C>(this Future <A> fa, Fn <A, Future <B> > f, Fn <A, B, C> g) =>
 fa.flatMap(f, g);
示例#8
0
 public static Future <B> SelectMany <A, B>(this Future <A> fa, Fn <A, Future <B> > f) => fa.flatMap(f);