Javascript 如何更改此代码以使用异步套接字

Javascript 如何更改此代码以使用异步套接字,javascript,sockets,firefox-addon,firefox-addon-sdk,Javascript,Sockets,Firefox Addon,Firefox Addon Sdk,我正在用Jetpack开发一个Firefox附加组件,我需要实现附加组件和用Java编写的服务器之间的通信。必须在加载项启动时打开通信,然后每当加载项需要它时,它都会向服务器发出请求。但它必须是同步的,因为它需要服务器响应才能继续执行 我一直在寻找javascript中的同步套接字示例,但没有得到结果。可能它可以通过异步代码完成,但我不知道如何实现 编辑:以下是我的加载项的代码(使用库): 通过回调路由所有控制流有什么问题?这不是答案,所以我将以注释的形式发布:1。我不认为有任何方法可以在浏览器

我正在用Jetpack开发一个Firefox附加组件,我需要实现附加组件和用Java编写的服务器之间的通信。必须在加载项启动时打开通信,然后每当加载项需要它时,它都会向服务器发出请求。但它必须是同步的,因为它需要服务器响应才能继续执行

我一直在寻找javascript中的同步套接字示例,但没有得到结果。可能它可以通过异步代码完成,但我不知道如何实现

编辑:以下是我的加载项的代码(使用库):


通过回调路由所有控制流有什么问题?这不是答案,所以我将以注释的形式发布:1。我不认为有任何方法可以在浏览器(甚至Firefox)上用JavaScript实现同步套接字。2.您应该能够通过API使用异步套接字来实现这一点。向我们展示您的代码,并将您的问题转化为:“如何使用异步套接字实现这一点?”我同意其他评论者的看法,您的问题不应该是“如何使套接字同步工作”,而应该是“如何将代码更改为使用异步套接字?”. 在Firefox扩展中应该尽可能避免同步操作。是的,你是对的。很抱歉,我是stackoverflow的新手,我不知道如何编辑这篇文章@T.J.Crowder:但问题是我不知道如何使用异步套接字。我需要处理服务器响应的所有值,在此之前我无事可做。通过回调路由所有控制流有什么问题?这不是答案,因此我将以注释的形式发布:1。我不认为有任何方法可以在浏览器(甚至Firefox)上用JavaScript实现同步套接字。2.您应该能够通过API使用异步套接字来实现这一点。向我们展示您的代码,并将您的问题转化为:“如何使用异步套接字实现这一点?”我同意其他评论者的看法,您的问题不应该是“如何使套接字同步工作”,而应该是“如何将代码更改为使用异步套接字?”. 在Firefox扩展中应该尽可能避免同步操作。是的,你是对的。很抱歉,我是stackoverflow的新手,我不知道如何编辑这篇文章@T.J.Crowder:但问题是我不知道如何使用异步套接字。我需要处理服务器响应的所有值,在此之前我什么都不用做。
var net = require('net');

var Server = function() {

    this.socket = net.createConnection(6666, 'localhost');      
    this.socket.on('data', function(data) {
        console.log(data.replace(/\n/gm," "));
    }).on('connect', function() {
        //console.log('Socket connected.');         
    }).on('end', function() {
        //console.log('Connection finished.');
    });

    this.findCategory = function(query) {
        this.socket.write(query + "\n");
    }

}

exports.main = function() {

    var gs = new Server();              
    processResult(gs.findCategory('Bye'));

};