使用RxJS获取Observable的最后一条消息

时间:2016-06-02 08:39:25

标签: rxjs observable

我想知道是否可以重播重新发送 RxJS中Observable的最后一条消息。

像:

class MyClass {

    results: Observable<MyData[]>;
    first: MyData;

    reactToSmth() {
        this.results.subscribe((data: MyData[]) => {
            this.first = data[0];
        });
    }

    reactToSmthElse() {
        // doesn't exist :-)
        this.results.resendLast(data: MyData[]) => {
            this.first = data[1];
        });
    }

}

我知道我可以简单地将data存储在我的班级中,以便我可以稍后操作,同时在更复杂的情况下我想知道是否可能来做某事喜欢那样以及如何。

感谢。

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,甚至很容易。有几个选项,但对于您提供的内容最简单的可能是<?php $con = mysqli_connect('100.100.25.100','user','Pass123#','pi2w_station'); ?> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['Date', 'Visits'], <?php $query = "select TimeStamp,temp_bmp180 from pi2w_attributes order by TimeStamp DESC LIMIT 100"; $exec = mysqli_query($con,$query); while($row = mysqli_fetch_array($exec)){ echo "['".$row['TimeStamp']."',".$row['temp_bmp180']."],"; } ?> ]); var options = { title: 'Date wise visits' }; var chart = new google.visualization.LineChart(document.getElementById('curve_chart')); //var chart = new google.visualization.ColumnChart(document.getElementById("columnchart")); //<div id="columnchart" style="width: 900px; height: 500px;"></div> chart.draw(data, options); } </script> <div id="curve_chart" style="width: 900px; height: 500px"></div> 一个可观察的,使用obs$来获取一个observable,当订阅时将重新发送{{1}的最后一个发布值}。