// Use this for initialization void Start() { var source = new NumberObservable(); var subscribe1 = source // .Where(x => x % 2 == 0) // .Select(_ => 2) .Buffer(4, 2) .Subscribe ( value => Debug.Log("OnNext(" + value + ") called"), ex => Debug.Log("OnError called"), () => Debug.Log("OnCompleted called") ); Debug.Log("## Execute1"); source.Execute(1); Debug.Log("## Execute2"); source.Execute(2); Debug.Log("## Execute3"); source.Execute(3); Debug.Log("## Execute4"); source.Execute(4); }
static void Main(string[] args) { var producer = new NumberProducer(); var observer = new NumberObservable(producer); var consumer = new ConsoleOutputObserver(); observer.Subscribe(consumer); producer.Produce(); // short way var generator = Observable //.Range(0, 100) .Generate(0, x => x < 100, x => x + 1, x => x, x => TimeSpan.FromSeconds(1)) .Select( x => { if (x%15 == 0) return "FizzBuzz"; if (x%3 == 0) return "Fizz"; if (x%5 == 0) return "Buzz"; return x.ToString(); }) .Do(Console.WriteLine); generator.Subscribe(); Console.ReadKey(); }
// Use this for initialization void Start() { var source = new NumberObservable(); //var subscribe1 = source.Subscribe(new PrintObserver()); var subscribe1 = source.Subscribe ( value => Debug.Log("OnNext(" + value + ") called"), ex => Debug.Log("OnError called"), () => Debug.Log("OnCompleted called") ); //var subscribe2 = source.Subscribe(new PrintObserver()); var subscribe2 = source.Subscribe ( value => Debug.Log("OnNext(" + value + ") called"), ex => Debug.Log("OnError called"), () => Debug.Log("OnCompleted called") ); Debug.Log("# Execute1"); source.Execute(1); Debug.Log("# Dispose"); subscribe2.Dispose(); Debug.Log("# Execute2"); source.Execute(2); Debug.Log("# Execute0"); source.Execute(0); //var subscribe3 = source.Subscribe(new PrintObserver()); var subscribe3 = source.Subscribe ( value => Debug.Log("OnNext(" + value + ") called"), ex => Debug.Log("OnError called"), () => Debug.Log("OnCompleted called") ); Debug.Log("# Completed"); source.Completed(); }