另一篇关于在Javascript方法中调用变量的文章
Another post about calling variables inside Javascript methods
是的,我知道有很多关于Javascript变量以及如何正确访问它们及其范围等的帖子。然而,我仍然无法解决我的问题,即使花了几个小时试图用多篇StackOverflow帖子和其他文章来解决它。这是我的代码,比如说part2.js,到目前为止:
var dataval = "";
callCgiFile().then(function(data) {
dataval = data;
alert(dataval); //ALERTS data PROPERLY
});
alert(dataval); //DOESNT ALERT data at all
我基本上有另一个Javascript文件,比如part1.js,如下所示:
function callCgiFile() {
return $.get('somecgifile.cgi');
}
并且正在我的part2.js文件中调用该函数,如图所示。我正在访问CGI文件中的数据,并试图在函数之外访问它,但它根本不起作用。老实说,我读过很多关于这个问题的类似问题,但都没有解决。我能做些什么来解决我的问题吗??请告诉我!非常感谢!
第二个警报将在第一个警报之前触发。这里的原因不是可变范围,而是JavaScript的异步特性。重新构造代码,以便适应异步工作方式。
尝试在第一个.then()
返回dataval
,添加第二个.then()
以在中处理dataval
var dataval = "";
function callCgiFile() {
return $.get("https://gist.githubusercontent.com/guest271314/"
+ "6a76aa9d2921350c9d53/raw/"
+ "1864137bfd2eb62705bd0e71175048a28b3253e6/abc.txt");
}
callCgiFile()
.then(function(data) {
dataval = data;
alert(dataval); //ALERTS data PROPERLY
// return `dataval` at first `.then`
return dataval
})
// do stuff with `dataval` within second `.then`
.then(function(data) {
alert(dataval)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
相关文章:
- object.仅冻结对象方法.JavaScript
- 快速方法 Javascript/Jquery/etc 检索表单中包含的所有 aspnet:textbox (input)
- 查看整个画布是否被涂成一种颜色的方法.Javascript + processing.js
- 从方法 JavaScript 访问对象变量
- pop()方法javascript没有给出完整的输出
- 如何格式化setInterval方法JavaScript的运行时间
- 正则表达式/替换方法Javascript
- 将vars传递给其他方法javascript
- 寻找一种简化if/else语句的方法.javascript
- focus()或select()方法javascript,在Chrome中性能缓慢
- 未捕获的类型错误:对象没有方法..Javascript
- 对象方法javascript中的方法/函数
- 构造函数中的私有方法(Javascript,坏主意?)
- 查看数组是否有数组的最简单方法?Javascript
- 扁平化数组元素(不是整个数组)的有效方法JavaScript
- 最常用的生成PDF报告的方法(JavaScript,node.js)
- 创建多维数组与地图方法:javascript
- 对象方法Javascript HTML DOM中的多个事件监听器
- 卡住了.adddeventlistener不能在属性内处理我的方法.Javascript
- 任何获取文档选择的x、y、w、h的方法(JavaScript)