FailedPromiseT.cs
65 lines
| 1.7 KiB
| text/x-csharp
|
CSharpLexer
/ Implab / FailedPromiseT.cs
cin
|
r203 | using System; | ||
using System.Reflection; | ||||
namespace Implab { | ||||
public class FailedPromise<T> : FailedPromise, IPromise<T> { | ||||
public FailedPromise(Exception error) : base(error) { | ||||
} | ||||
public IPromise<T> On(Action<T> success, Action<Exception> error, Action<Exception> cancel) { | ||||
if (error != null) { | ||||
try { | ||||
error(Error); | ||||
// Analysis disable once EmptyGeneralCatchClause | ||||
} catch { | ||||
} | ||||
} | ||||
return this; | ||||
} | ||||
public IPromise<T> On(Action<T> success, Action<Exception> error) { | ||||
if (error != null) { | ||||
try { | ||||
error(Error); | ||||
// Analysis disable once EmptyGeneralCatchClause | ||||
} catch { | ||||
} | ||||
} | ||||
return this; | ||||
} | ||||
public IPromise<T> On(Action<T> success) { | ||||
return this; | ||||
} | ||||
T IPromise<T>.Join() { | ||||
throw new TargetInvocationException(Error); | ||||
} | ||||
T IPromise<T>.Join(int timeout) { | ||||
throw new TargetInvocationException(Error); | ||||
} | ||||
IPromise<T> IPromise<T>.On(Action success, Action<Exception> error, Action<Exception> cancel) { | ||||
On(success, error, cancel); | ||||
return this; | ||||
} | ||||
IPromise<T> IPromise<T>.On(Action success, Action<Exception> error) { | ||||
On(success, error); | ||||
return this; | ||||
} | ||||
IPromise<T> IPromise<T>.On(Action success) { | ||||
On(success); | ||||
return this; | ||||
} | ||||
IPromise<T> IPromise<T>.On(Action handler, PromiseEventType events) { | ||||
On(handler, events); | ||||
return this; | ||||
} | ||||
} | ||||
} | ||||