public static AsyncTailAction <T> InterceptWith <T>(this AsyncTailAction <T> tailAction, Func <Func <T, Task>, T, Task> interceptor) { return(AsyncTailAction <T> .As((me, item) => { return interceptor(t => tailAction.Action(me, t), item); })); }
public static AsyncTailAction <T> InterceptWith <T>(this AsyncTailAction <T> tailAction, Func <T, Task> asyncAction) { return(tailAction.InterceptWith((me, item) => { return asyncAction(item).ContinueWith(_ => me(item)).Unwrap(); })); }
public static AsyncTailAction <T> InterceptWith <T>(this AsyncTailAction <T> tailAction, Action <T> action) { return(tailAction.InterceptWith((me, item) => { action(item); return me(item); })); }
public static Func <T, Task> ToAction <T>(this AsyncTailAction <T> tailAction) { return(new Func <T, Task>(t => tailAction.Run(t))); }