gpt4 book ai didi

Javascript - 值存在,然后消失,然后再次出现?

转载 作者:行者123 更新时间:2023-11-29 17:28:55 26 4
gpt4 key购买 nike

这让我抓狂。我也无法通过 Firebug 解决这个问题。有人可以解释一下这里发生了什么吗?

基本上我有一个传入的文本文件,其中每一行都包含一个竖线分隔的记录。我将它们拆分成一个字符串数组,供以后在自动完成文本框中使用。代码如下:

<script type="text/javascript">
$(function () {

var rawData = new Array();
$.get("/sample.txt",
function (data) {
var raw = data.split('\n');
for (var i = 0; i < raw.length; i++) {
rawData.push(raw[i].split('|'));
};
alert(rawData); // 1st sanity check
}
);
alert(rawData); // 2nd sanity check
alert(rawData); // 3rd sanity check

出于某种原因,第一次健全性检查工作正常 - 它显示了我期望的所有数据。第二个显示 rawData 为空...但第三个再次显示所有数据。移除第一个健全性检查不会影响第二个和第三个。

这怎么可能?为什么会这样?这让我发疯。

最佳答案

您忘记了 get() 函数是一个异步函数。您在内部定义的回调只会在文件加载后被调用。本质上,JavaScript 解释器将它放入一个队列中,等待操作完成,然后允许其余代码执行。

因此,回调中的警报将反射(reflect)文件已加载的事实。外面的警报将在加载该文件之前很好地执行。当然,您个人等待关闭第二个警报的时间越长,加载所有数据后第三个警报执行的更改就越好。

关于Javascript - 值存在,然后消失,然后再次出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6287345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com