SequentialSimpleAsyncSubject.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. // Licensed to the .NET Foundation under one or more agreements.
  2. // The .NET Foundation licenses this file to you under the MIT License.
  3. // See the LICENSE file in the project root for more information.
  4. using System.Collections.Generic;
  5. using System.Threading.Tasks;
  6. namespace System.Reactive.Subjects
  7. {
  8. public sealed class SequentialSimpleAsyncSubject<T> : SimpleAsyncSubject<T>
  9. {
  10. protected override async ValueTask OnCompletedAsyncCore(IEnumerable<IAsyncObserver<T>> observers)
  11. {
  12. foreach (var observer in observers)
  13. {
  14. await observer.OnCompletedAsync().ConfigureAwait(false);
  15. }
  16. }
  17. protected override async ValueTask OnErrorAsyncCore(IEnumerable<IAsyncObserver<T>> observers, Exception error)
  18. {
  19. foreach (var observer in observers)
  20. {
  21. await observer.OnErrorAsync(error).ConfigureAwait(false);
  22. }
  23. }
  24. protected override async ValueTask OnNextAsyncCore(IEnumerable<IAsyncObserver<T>> observers, T value)
  25. {
  26. foreach (var observer in observers)
  27. {
  28. await observer.OnNextAsync(value).ConfigureAwait(false);
  29. }
  30. }
  31. }
  32. }