폴링 웹 서비스를 RX로 변환

마이크 워드

주어진:

public partial class Weather
{
    private readonly DispatcherTimer _timer = new DispatcherTimer();
    private readonly IWeatherDataProvider _weatherDataProvider;

    public Weather(IWeatherDataProvider weatherDataProvider)
    {
        InitializeComponent();
        _weatherDataProvider = weatherDataProvider;
        Loaded += async (sender, args) =>
        {
            _timer.Interval = new TimeSpan(0, 15, 0);
            _timer.Tick += async (o, eventArgs) => DataContext = await UpdateWeather();
            _timer.Start();
            DataContext = await UpdateWeather();
        };

        Unloaded += (sender, args) => _timer.Stop();
    }

    private async Task<WeatherData> UpdateWeather()
    {
        var weatherData = await _weatherDataProvider.GetWeather();
        return weatherData;
    }
}

Reactive Extensions를 사용하여 변환하는 방법에 대해 의아해합니다. 나는 다음으로 시작했다 :

var weather = Observable.FromAsync(_weatherDataProvider.GetWeather);

그러나 투표 부분에 도달했을 때 :

Observable.Timer(new TimeSpan(0, 15, 0)).Subscribe(weather);

일반적인 과부하가 없습니다. 시퀀스를 생성해야한다는 생각을들은 것 같지만 어떤 이유에서인지 이해할 수 없습니다.

제임스 월드

Observable.Interval으로 Select투영 핵심이다. 이 같은:

public class Weather
{
    private readonly IWeatherDataProvider _weatherDataProvider;        
    private CompositeDisposable disposables = new CompositeDisposable();

    public Weather(IWeatherDataProvider weatherDataProvider)
    {
        InitializeComponent();
        _weatherDataProvider = weatherDataProvider;

        Loaded += (sender, args) =>
        {
          var weather = Observable.Interval(TimeSpan.FromMinutes(15))
              .SelectMany(_ => weatherDataProvider.GetWeather().ToObservable())
              .ObserveOnDispatcher()
              .Subscribe(data => DataContext = data);
          disposables.Add(weather);
        };

        Unloaded += (sender, args) => disposables.Dispose();
    }
}

ObserveOnDispatcher 너겟 패키지 rx-xaml에 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

웹 서비스에서 LIST로 문자열 변환

분류에서Dev

웹 서비스에서 문자열로 datetime 형식 변환

분류에서Dev

Ajax (및 웹 서비스 방법)를 통해받은 배열을 자바 스크립트 배열로 변환

분류에서Dev

요청에서 생성 된 xml 구조를 웹 서비스로 변환하는 방법

분류에서Dev

ASP.NET 5 미리보기 웹 프로젝트를 클라우드 서비스로 변환하는 방법

분류에서Dev

자바 스크립트 웹 서비스 폴링

분류에서Dev

Rx Observable <List <T >>를 Observable <T>로 변환

분류에서Dev

배열 Ios에서 문자열 변환, 웹 서비스로 가져 오기

분류에서Dev

배열 Ios에서 문자열 변환, 웹 서비스로 가져 오기

분류에서Dev

웹 서비스 요청에서 배열을 문자열로 변환 C #

분류에서Dev

목록 (웹 서비스에서)을 데이터 테이블 C #으로 변환

분류에서Dev

이미지로 변환 할 Base64 코드를 전달할 json 웹 서비스

분류에서Dev

웹 서비스에 맵 (내부적으로 XML로 변환 됨) 보내기

분류에서Dev

웹 서비스 문자열 xml을 일반 문자열로 변환

분류에서Dev

Backgroundworker를 사용하는 ASP.NET 웹 서비스의 폴링 서비스가 계속되지 않습니다.

분류에서Dev

내 웹 사이트에서 이미지를 비디오로 변환

분류에서Dev

XAMPP의 htdocs 웹 루트 폴더를 다른 폴더로 변경

분류에서Dev

XAMPP의 htdocs 웹 루트 폴더를 다른 폴더로 변경

분류에서Dev

Azure 웹 사이트를 웹 역할로 변환

분류에서Dev

WCF 서비스를 asmx로 변환

분류에서Dev

웹 서비스를 연결할 때 클래스 stdclass의 객체를 PHP에서 문자열로 변환 할 수 없습니다.

분류에서Dev

웹 페이지를 텍스트로 변환

분류에서Dev

웹 페이지를 PDF 보존 라텍스로 변환

분류에서Dev

문자를 추가하여 일괄 변환 웹 링크

분류에서Dev

웹에서 파싱 한 후 List를 DataFrame으로 변환

분류에서Dev

Python> Selenium : 텍스트 파일의 링크를 기반으로 "로그인 된"환경에서 웹 스크래핑

분류에서Dev

Mule ESB의 웹 서비스 프록시 패턴에서 변환기로 전달되는 필터 페이로드

분류에서Dev

IIS에서 호스팅되는 여러 웹 사이트를 Azure 웹 사이트로 변환하는 방법

분류에서Dev

Rest API에서 변경된 엔티티를 수동으로 폴링하여 이벤트 스트림 모델링

Related 관련 기사

  1. 1

    웹 서비스에서 LIST로 문자열 변환

  2. 2

    웹 서비스에서 문자열로 datetime 형식 변환

  3. 3

    Ajax (및 웹 서비스 방법)를 통해받은 배열을 자바 스크립트 배열로 변환

  4. 4

    요청에서 생성 된 xml 구조를 웹 서비스로 변환하는 방법

  5. 5

    ASP.NET 5 미리보기 웹 프로젝트를 클라우드 서비스로 변환하는 방법

  6. 6

    자바 스크립트 웹 서비스 폴링

  7. 7

    Rx Observable <List <T >>를 Observable <T>로 변환

  8. 8

    배열 Ios에서 문자열 변환, 웹 서비스로 가져 오기

  9. 9

    배열 Ios에서 문자열 변환, 웹 서비스로 가져 오기

  10. 10

    웹 서비스 요청에서 배열을 문자열로 변환 C #

  11. 11

    목록 (웹 서비스에서)을 데이터 테이블 C #으로 변환

  12. 12

    이미지로 변환 할 Base64 코드를 전달할 json 웹 서비스

  13. 13

    웹 서비스에 맵 (내부적으로 XML로 변환 됨) 보내기

  14. 14

    웹 서비스 문자열 xml을 일반 문자열로 변환

  15. 15

    Backgroundworker를 사용하는 ASP.NET 웹 서비스의 폴링 서비스가 계속되지 않습니다.

  16. 16

    내 웹 사이트에서 이미지를 비디오로 변환

  17. 17

    XAMPP의 htdocs 웹 루트 폴더를 다른 폴더로 변경

  18. 18

    XAMPP의 htdocs 웹 루트 폴더를 다른 폴더로 변경

  19. 19

    Azure 웹 사이트를 웹 역할로 변환

  20. 20

    WCF 서비스를 asmx로 변환

  21. 21

    웹 서비스를 연결할 때 클래스 stdclass의 객체를 PHP에서 문자열로 변환 할 수 없습니다.

  22. 22

    웹 페이지를 텍스트로 변환

  23. 23

    웹 페이지를 PDF 보존 라텍스로 변환

  24. 24

    문자를 추가하여 일괄 변환 웹 링크

  25. 25

    웹에서 파싱 한 후 List를 DataFrame으로 변환

  26. 26

    Python> Selenium : 텍스트 파일의 링크를 기반으로 "로그인 된"환경에서 웹 스크래핑

  27. 27

    Mule ESB의 웹 서비스 프록시 패턴에서 변환기로 전달되는 필터 페이로드

  28. 28

    IIS에서 호스팅되는 여러 웹 사이트를 Azure 웹 사이트로 변환하는 방법

  29. 29

    Rest API에서 변경된 엔티티를 수동으로 폴링하여 이벤트 스트림 모델링

뜨겁다태그

보관