JavaScript var外部函数
JavaScript var outside function
如何在fn()函数之外检索returndata变量?
function fn() {
var xmlhttp = new XMLHttpRequest();
var vars = "request=something";
xmlhttp.open("POST", "script.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var returndata = xmlhttp.responseText;
}
}
xmlhttp.send(vars);
}
您需要在函数之前定义全局变量,然后将结果存储到该变量中。现在的方法是定义一个局部变量。
var returndata;
function fn() {
var xmlhttp = new XMLHttpRequest();
var vars = "request=something";
xmlhttp.open("POST", "script.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
returndata = xmlhttp.responseText;
}
}
xmlhttp.send(vars);
}
AJAX请求是异步的。你不能在披萨烤好之前吃它。在现实生活中,你给披萨公司打电话。他们烤好了,你就等着。AJAX也是如此。因此,设置returndata
本身不会完成所有操作。
function fn() {
var xmlhttp = new XMLHttpRequest();
var vars = "request=something";
xmlhttp.open("POST", "script.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var returndata = xmlhttp.responseText;
}
}
xmlhttp.send(vars);
}
readystate函数不是没有意义的。它一直等待,直到请求被处理完毕。从那以后你就可以继续了。依赖于返回数据的每个函数/脚本都应该从该函数调用。
你仍然可以这样做:
var returndata; //this will now be a global variable.
function fn() {
var xmlhttp = new XMLHttpRequest();
var vars = "request=something";
xmlhttp.open("POST", "script.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var returndata = xmlhttp.responseText;
doSomeThing(); //fire depended value.
}
}
xmlhttp.send(vars);
}
function doSomething()
{
if(returndata)
{
//do Something
}
else
{
alert("Data isn't loaded yet");
}
}
相关文章:
- 访问函数外部的变量
- appendChild在函数外部工作,但在函数内部不工作
- 使用在函数外部声明的变量的 Javascript 返回值 + undefined
- JavaScript未定义的函数外部JavaScript文件
- 没有在函数外部分配全局变量
- 在挖空中引用对象构造函数外部视图模型的属性
- 访问函数外部的变量
- JS:从函数外部调用变量
- 在函数外部的 Angularjs 中访问 $http.get 的结果
- JQuery 更改函数外部的变量值
- 函数外部的 clearTimeout() 无法正常工作
- Javascript - 无法获取函数来设置要在函数外部使用的全局变量
- 如何设置 var self = this;从函数外部
- 在 JavaScript 中维护函数外部变量的值
- 为什么匿名函数中的私有变量可以从 javascript 中的函数外部访问
- 如何在函数外部获取变量的值
- 如何在函数外部访问 Javascript 变量值
- 节点.js在函数外部获取 MySQL 的结果
- 如何使用 $http.get 每 3 秒发出一个新请求并在函数外部获取数据
- 在 Phonegap DB 函数中返回函数外部的变量