我创建了control.js文件,其中包含对服务器执行POST和GET请求的AJAX函数。
问题是,我无法将从control.js文件中的AJAX函数收到的数据返回给其他JavaScrip文件。
据我所知,我们无法直接从异步函数返回数据。它需要额外的函数来处理函数返回的数据。
function getServer(directory)
{
xmlHttp.open("GET",rootDirectory+directory);
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
Handler(xmlHttp.responseText);
}
}
};
xmlHttp.send();
}
function Handler(response)
{
return response;
}
函数处理程序将数据正确地返回到其自己的文件中的每个函数调用(在control.js文件中)。
现在,假设我有多个JavaScript文件,我想调用此函数。如何获取此文件中函数返回的值?
示例:
function construct()
{
// This function belongs to load.js file not control.js
var handler = getServer("request/read.php?table=tasks");
console.log(handler); // This one return nothing...//
}
答案 0 :(得分:0)
将Handler
函数作为参数传递,而不是将其硬编码到函数中。
getServer("/foo/bar/", myFunction);