反应。初始化服务一

时间:2018-11-03 18:06:12

标签: javascript reactjs

我想初始化一个服务。创建实例一并在所需组件中使用它。 我创建了一个具有套接字初始化的Api类。

import client_ from '../services/service';

export default class Api{
    client = null;
    constructor() {
        this.client = client_('/socket.io');
    }

    getProject(cb) {
        var q = {};
        q.parent_id = "#";
        this.client.call('project', q, function(d) {      
            cb(d.data);            
        });
    }
}

服务代码的一部分:

module.exports = function rpc(url) {
    socket = io({path: url});

    socket.on('connect', function(client) {
        console.log("Socket connected!");

    });
    service.call = function(command, data, callback) {          

        if (null === socket || !socket.connected) {
            callback({status: "FAIL", data: "Socket disconnected!"});
        } else {
            socket.send(command, function (a) {
                callback(a);
            });
        }
    }
    return service;
}

所以,现在在某些组件中,我尝试使用这种构造

 componentDidMount() {
        this.api = new Api();
        this.api.getProject((data) => {
            console.log(data);    
        });    
    }

所以我的第一个问题是如何修改代码以初始化作为基本组件的App组件中的服务,并在其他注释中将其用作call(this.api.getProject()...,this.api。 getUser()...)

第二个问题:现在,当我初始化并调用getProject函数时,套接字尚未初始化。如何等待套接字初始化和调用方法?

0 个答案:

没有答案
相关问题