javascript 如何在WebSocket中提升变量[关闭]

eivgtgni  于 12个月前  发布在  Java
关注(0)|答案(1)|浏览(88)

已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

7小时前关闭
Improve this question
如何将onMessage函数中的var Xsym提升到onOpen函数?我在WebSocket中有以下代码:

var onOpen = function()
 {
     var symsub = 
   {    
    "cmd": "subscribe",
    "sym": Xsym
   }
    ws.send(JSON.stringify(symsub, null, 4));
 };

var onMessage = function(event)
{
    var data = event.data;
    var json = JSON.parse(data);

  if (json.cmd == "Update")
    {
      var Xsym = json.result.sym; 

      newstable.updateOrAddData ([{ Ticker:Xsym }]);
    }
};

我从json.result.sym接收Xsym并将其放入newstable,但无法将其升级为“sym”:Xsym。

uxh89sit

uxh89sit1#

要将Xsym变量从onMessage函数提升到onOpen函数,可以在两个函数之外将其声明为全局变量。下面是如何修改代码来实现这一点:

var Xsym; // Declare Xsym as a global variable

var onOpen = function()
{
    var symsub = {
        "cmd": "subscribe",
        "sym": Xsym // You can now access Xsym here
    };
    ws.send(JSON.stringify(symsub, null, 4));
};

var onMessage = function(event)
{
    var data = event.data;
    var json = JSON.parse(data);

    if (json.cmd == "Update")
    {
        Xsym = json.result.sym; // Update the global Xsym variable
        newstable.updateOrAddData([{ Ticker: Xsym }]);
    }
};

通过将Xsym声明为两个函数外部的全局变量,您可以从onOpenonMessage函数访问和更新它。这样,您就可以在onOpen函数的symsub对象中使用Xsym的更新值。

相关问题