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)))); }