Javascript函数返回null
Javascript function returning null
我写了一个函数,从php文件中获取一些数据。当我解析它并使用一个警告框来显示它时,它工作得很好,但当我试图返回值时,它是未定义的。我不知道为什么会这样
function getUser() {
var httpRequest = new createAjaxRequestObject();
httpRequest.open('GET', 'getUser.php', true);
var name;
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState == 4) {
if (httpRequest.status == 200) {
name = JSON.parse(httpRequest.responseText);
alert(name); //this works just fine and display the name john
} else {
alert('Problem with request');
}
}
}
httpRequest.send();
return name; //however this is returning null
}
现在它发送null,因为它在httpRequest.send();
被调用时立即获取值。
在这种情况下,你需要传递一个回调函数来接收返回值
像这样修改
function foo(callback) {
httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function () {
if (httpRequest.readyState === 4) { // request is done
if (httpRequest.status === 200) { // successfully
callback(httpRequest.responseText); // we're calling our method
}
}
};
httpRequest.open('GET', 'getUser.php', true);
httpRequest.send();
}
foo(function (result) {
var name = result;
});
相关文章:
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- php函数的ajax html$_POST值返回null
- 谷歌地图API-“;toGeoJson”;返回几何体为null的对象
- 是否可以 document.getElementsByTagName('head')[0] ever 返回 null
- Firebase:查询返回null
- 在浅层渲染的反应组件上,Enzyme为道具返回null
- javascript对象显示为null,但object.properties返回数据
- PHP's json_decode返回空字符串(不是NULL)
- jQuery Multiselect插件返回null长度(应为0?)
- 如何处理getElementById返回Null
- JavaScript中的RegExp返回null
- node.js mongojs findOne回调返回错误为null
- Javascript 中的 RegEx 返回 Null
- 加载时的getelementbyID返回null
- 谷歌脚本在第二次调用Gmail后返回null
- Indexeddb OpenCursor在特定键值上返回null
- Ajax响应返回null
- null 返回 by JavaScript 中的 getElementById 方法
- 与typeof运算符一起使用时,javascript null返回对象