首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从事件源创建对象

从事件源创建对象
EN

Stack Overflow用户
提问于 2018-11-08 20:01:52
回答 1查看 77关注 0票数 1

我试图将日期和数据从事件源存储到包含coreid的对象,并继续将数据和日期推送到正确的coreid对象。

到目前为止,它正在将wifiData存储到两个coreids中,而不是相应的一个。如何将数据推到正确的id?

代码语言:javascript
复制
    <template>
    <div class="container">
        <h2>Probe Diagnostics</h2>
        <div class="row">
            <div class="col">
                <line-chart id="wifiChart" ytitle="Signal Strength" label="Wifi Strength" :colors="['#b00']" :messages="{empty: 'Waiting for data'}"
                    :data="wifiData" height="250px" :library="{backgroundColor: '#eee'}" :download="true" :min="-20"
                    :max="20"></line-chart>
                <column-chart :data="wifiData" ytitle="Signal Strength" height="250px"></column-chart>
            </div>
            <div class="col">
                <line-chart :data="psSoc" ytitle="ps-soc" height="250px"></line-chart>
                <line-chart :data="psVoltage" ytitle="ps-voltage" height="250px"></line-chart>
            </div>
        </div>
    </div>
</template>

<script>
    let wifiData = [];
    let psSoc = [];
    let psVoltage = [];
    let photons = {};
    export default {
        data() {
            return {
                wifiData,
                psSoc,
                psVoltage,
                photons,
            }
        },

        mounted() {
            this.streamData();
        },
        methods: {
            streamData() {
                // LIVE PUSH EVENTS
                if (typeof (EventSource) !== "undefined") {
                    var eventSource = new EventSource(
                        "http://10.10.10.2:8020/v1/Events/?access_token=687b5aee0b82f6536b65f");
                    eventSource.addEventListener('open', function (e) {
                        console.log("Opened connection to event stream!");
                    }, false);

                    eventSource.addEventListener('error', function (e) {
                        console.log("Errored!");
                    }, false);

                    eventSource.addEventListener('WiFi Signal', function (e) {
                        var parsedData = JSON.parse(e.data);

                        if (parsedData.coreid in photons) {
                            photons[parsedData.coreid].push([parsedData.published_at, parsedData.data])

                            return
                        } else {
                            photons[parsedData.coreid] =[]
                        }
                    }, false);

                    eventSource.addEventListener('ps-soc', function (e) {
                        var parsedData = JSON.parse(e.data);
                        psSoc.push([parsedData.published_at, parsedData.data])
                    }, false);

                    eventSource.addEventListener('ps-voltage', function (e) {
                        var parsedData = JSON.parse(e.data);
                        psVoltage.push([parsedData.published_at, parsedData.data])
                    }, false);

                }

            }
        }
    }
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-08 20:04:50

完全删除wifiData。相反,只需直接管理查找对象中的数组:

代码语言:javascript
复制
 // Initialize if needed:
 if(!photons[parsedData.coreid])
   photons[parsedData.coreid] = [];

 // Then push directly to it:
 photons[parsedData.coreid].push(/*...*/);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53215307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档