Пример #1
0
        /// <summary>
        /// BehaviorSubject 可以设置初始值,并且每次都会发射并缓存最新值
        /// BehaviorSubject.Value 可以获取到初始值或者最新值
        /// 适合用于一些状态变化的场景
        /// </summary>
        public static void PreserveLastStateWithBehaviorSubject()
        {
            var sbj = new BehaviorSubject <int>(2);

            Console.WriteLine($"BehaviorSubject.Value:{sbj.Value}");
            sbj.SubscribeConsole("first");
            sbj.OnNext(3);
            sbj.SubscribeConsole("second");
            sbj.OnCompleted();
            Console.WriteLine($"BehaviorSubject.Value:{sbj.Value}");
        }
Пример #2
0
        private static void BehaviorSubjectExample()
        {
            Demo.DisplayHeader("BehaviorSubject - initialized with a default value and has a memory of the latest value");

            //NetworkConnectivity:  Connected or Disconnected
            BehaviorSubject <NetworkConnectivity> connection = new BehaviorSubject <NetworkConnectivity>(NetworkConnectivity.Disconnected);

            connection.SubscribeConsole("first");
            connection.OnNext(NetworkConnectivity.Connected);
            connection.SubscribeConsole("second");
            Console.WriteLine("Connection is {0}", connection.Value);
        }