AsyncObservables.SearchEngine.SearchEngineExample.Search_WithCancellation C# (CSharp) Method

Search_WithCancellation() public static method

public static Search_WithCancellation ( string term ) : IObservable
term string
return IObservable
        public static IObservable<string> Search_WithCancellation(string term)
        {
            return Observable.Create<string>(async (o, cancellationToken) =>
            {
                var searchEngineA = new SearchEngineA();
                var searchEngineB = new SearchEngineB();
                var resultsA = await searchEngineA.SearchAsync(term);
                foreach (var result in resultsA)
                {
                    cancellationToken.ThrowIfCancellationRequested();
                    o.OnNext(result);
                }
                cancellationToken.ThrowIfCancellationRequested();
                var resultsB = await searchEngineB.SearchAsync(term);
                foreach (var result in resultsB)
                {
                    cancellationToken.ThrowIfCancellationRequested();
                    o.OnNext(result);
                }
                o.OnCompleted();
            });
        }