Javascript 如何使用模块在2个文件之间传递json参数
我正在尝试使用require调用其他js文件中的函数。所有这些参数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
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;