【问题标题】:Get a value out of a socket.io function?从 socket.io 函数中获取值?
【发布时间】:2016-07-02 21:57:09
【问题描述】:

我正在尝试创建一个返回答案值的函数。但是我在获取这个值时遇到了麻烦。

它目前正在做的是从服务器获取一些数据并将其存储在数据中。但是,我想让这个值更容易获得,因为不必不断地将我的内容包装在 serverAnswer 函数中。这可以吗?

var serverAnswer = (function() {
    var answer;
    socket.on("server answer", function(data){
        answer = data.year;
    });
    return function() {
        alert(answer);
    };
}());

serverAnswer();
console.log(answer);

【问题讨论】:

    标签: javascript jquery socket.io


    【解决方案1】:

    您不能完全以同步的方式做到这一点。但是,您可以在需要 answer 值的位置创建一个函数,并从套接字回调中调用它。甚至套接字回调也可以是您想要使用answer 值的函数。

    function doit(answer){
        // do something with answer
    }
    

    你可以这样做

    socket.on("server answer", function(data){
        answer = data.year;
        doit(answer);
    });
    

    或者这个

    socket.on("server answer", doit);
    

    【讨论】:

    • 你是一个传奇好先生。 socket.on("server answer", doit); 有什么不同? ?
    • @factor_za doit 实际上是我们在第一种情况下传递的那个函数。我们只是将其命名为 doit 并将其放在外面,然后使用它的引用
    • 太棒了。我使用了第一种方法,现在可以通过我的 main 函数传递它。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2018-09-29
    相关资源
    最近更新 更多