public static IObservable <T> AsObservable <T>(this Promise <T> promise) where T : class
 {
     return(Observable.Create <T>(observer => promise.Clone().Done(t => {
         observer.OnNext(t);
         observer.OnCompleted();
     }).Fail(e => observer.OnError(e))));
 }