##// END OF EJS Templates
added Safe.DispatchEvent() a legacy equivalent for '?.Invoke()'...
added Safe.DispatchEvent() a legacy equivalent for '?.Invoke()' added Safe.Dispose(IEnumerable) added PromiseExtensions.CancellationPoint to add a cancellation point to the chain of promises added IPromise<T> PromiseExtensions.Then<T>(this IPromise<T> that, Action<T> success) overloads added PromiseExtensions.Error() overloads to handle a error or(and) a cancellation

File last commit:

r151:ec91a6dfa5b3 v2
r207:558f34b2fb50 v2
Show More
PromiseAwaiterT.cs
28 lines | 649 B | text/x-csharp | CSharpLexer
using System;
using System.Runtime.CompilerServices;
namespace Implab {
public struct PromiseAwaiter<T> : INotifyCompletion {
readonly IPromise<T> m_promise;
public PromiseAwaiter(IPromise<T> promise) {
m_promise = promise;
}
public void OnCompleted (Action continuation) {
if (m_promise != null)
m_promise.On(continuation, PromiseEventType.All);
}
public T GetResult() {
return m_promise.Join();
}
public bool IsCompleted {
get {
return m_promise.IsResolved;
}
}
}
}