-
-
Notifications
You must be signed in to change notification settings - Fork 150
Open
Description
We could just wrap around callback function and the like easily by wrapping CompletionSource
static class Observable
{
static Observable<T> FromCompletionSource<T>(Action<AwaitableCompletionSource<T>> action)
{
return Observable.FromAsync(async(token) => {
var source = new AwaitableCompletionSource<T>();
action(source);
return await source.Awaitable;
});
}
static Observable<T> FromCompletionSource<T>(Action<TaskCompletionSource<T>> action)
{
return Observable.FromAsync(async(token) => {
var source = new AwaitableCompletionSource<T>();
action(source);
return await source.Task;
});
}
}Usage
void DoSomething(string uid,Action<List<string>> onSuccess,Action<Exception> onFailure);
////
Observable.FromCompletionSource<List<string>>((source) => DoSomething("123456"),source.SetResult,source.SetException);Metadata
Metadata
Assignees
Labels
No labels