Ember JS:服务 - 从Socket.io获取数据

时间:2018-01-21 22:29:40

标签: ember.js socket.io ember-model

这是一种将数据导入服务的应用程序吗?
这就是我想要发生的事情。

import Ember from 'ember';

export default Ember.Service.extend({
    model: (function() {
        var data = [];

        var socket = io.connect('http://localhost:8080');

        socket.on('posts', function (data) {
            data = data.posts;
            console.log(data);
        });

        return data;
    })()
});

有没有正确的方法来解决这个问题? 这是一种将应用程序数据导入服务的应用程序 文件位置 app/services/posts.js

1 个答案:

答案 0 :(得分:1)

我认为你想要这样的东西:

export default Ember.Service.extend({
    init() {
        const socket = io.connect('http://localhost:8080');
        socket.on('posts', data => {
            this.set('data', data.posts);
        });
    },
    data: null,
});

但是你应该知道data将首先由null然后更新,当套接字的数据到达时。另一种方法是返回Promise,但是使用此解决方案,您可以使用套接字稍后更新数据。