Javascript 如何使用模块在2个文件之间传递json参数

Javascript 如何使用模块在2个文件之间传递json参数,javascript,json,Javascript,Json,我正在尝试使用require调用其他js文件中的函数。所有这些参数 >登录=要求(“登录请求”) 当我尝试将参数传递给LoginRequest时 function Request(params,type,url){ var Result; var loginReq = Titanium.Network.createHTTPClient(); loginReq.open(type,url); loginReq.setReques

我正在尝试使用require调用其他js文件中的函数。所有这些参数

  • >登录=要求(“登录请求”)

    当我尝试将参数传递给LoginRequest时

    function Request(params,type,url){
            var Result;
            var loginReq = Titanium.Network.createHTTPClient();
    
            loginReq.open(type,url);
    
            loginReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
            //send parameters
            loginReq.send(JSON.stringify(params));
    
            loginReq.onload = function()
            {
                var json = this.responseText;
                Result = JSON.parse(json);
                alert (Result.logged);
                alert (Result.name);
            };
        return Result;
      };
    
    exports.Request = Request;
    

    调用返回非恶魔对象,我的错误在哪里

    这是因为您正在进行异步调用

    调用
    loginReq.send()
    时,将进行调用,并且它将继续执行其余代码,而不等待异步调用完成,这就是函数返回
    未定义的原因

    要解决这个问题,您可以进行同步调用而不是异步调用(这是一个坏主意),或者您可以重新构造代码,也许LoginRequest可以返回loginReq实例而不是结果

    b2.addEventListener('click',function(e)
    {
        alert(params.username);
        if (username.value != '' && password.value != '')
        {
    
            Result=Login.Request(params,type,URL);
        }
        else
        {
            // warning alert
            alert("Username/Password are required");
        }
    
    
        if (Result.logged == true)
        {
            alert("Welcome " + Result.name + ", Please answer the following question");
            Create();
        }
        else
        {
            alert(Result.message);
        }
    });
    
    function Request(params,type,url){
            var Result;
            var loginReq = Titanium.Network.createHTTPClient();
    
            loginReq.open(type,url);
    
            loginReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
            //send parameters
            loginReq.send(JSON.stringify(params));
    
            loginReq.onload = function()
            {
                var json = this.responseText;
                Result = JSON.parse(json);
                alert (Result.logged);
                alert (Result.name);
            };
        return Result;
      };
    
    exports.Request = Request;