Skip to content

Instantly share code, notes, and snippets.

@53ningen
Last active May 26, 2017 11:18
Show Gist options
  • Save 53ningen/df1d79394de8f5b1c12444f6e2281766 to your computer and use it in GitHub Desktop.
Save 53ningen/df1d79394de8f5b1c12444f6e2281766 to your computer and use it in GitHub Desktop.
namespace NcmbAsObservables
{
/// <summary>
/// NCMBObjectの拡張
/// </summary>
public static class NcmbObjectExtensions
{
/// <summary>
/// 非同期処理でオブジェクトの取得を行います。
/// </summary>
/// <returns>取得したオブジェクト</returns>
public static IObservable<NCMBObject> FetchAsyncAsStream(this NCMBObject origin)
{
return Observable.Create<NCMBObject>(observer =>
{
var disposable = new BooleanDisposable();
origin.FetchAsync(error =>
{
if (disposable.IsDisposed) return;
if (error == null)
{
observer.OnNext(origin);
observer.OnCompleted();
}
else
{
observer.OnError(error);
}
});
return disposable;
});
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment