当前位置: 首页 > 知识库问答 >
问题:

在XMLHttpRequest循环完成之前停止代码执行

屠盛
2023-03-14

您的Google Maps代码结构如下所示:

<script>
function initMap() {

}

var locations = 
[
        {lat: -31.563910, lng: 147.154312},
        {lat: -33.718234, lng: 150.363181}
]
</script>

<script async defer
    src="https://maps.googleapis.com/maps/api/js?key=API-key&callback=initMap" >
</script>
  • 回调?
  • JavaScriptpromise?
  • 您能想到的其他方法吗?

同样,这里所建议的信号量是一种可行的方法吗?

共有1个答案

锺离自明
2023-03-14
function initMap() {
  var xhr= new XMLHttpRequest();
  xhr.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
     LoadGoogleMaps();
    }
  };
  xhr.open();//<-- Your parameters go here
  xhr.send();
}

function LoadGoogleMaps(){
  // Logic to load maps
}

标准XHR文档可在以下网址找到:http://www.w3schools.com/xml/ajax_intr.asp

从概念上讲,信号量是一个很好的想法,但有时却很难实现。通常在javascript中,最佳实践是尽可能使用回调或promise。

 类似资料:
  • 问题内容: 我创建了一个for循环,该循环循环了元素出现在容器中的次数。for循环从HTML捕获一些数据,并创建一个JSON url,然后将返回一个值。然后应将该值添加到适当位置的HTML中。 问题似乎是for循环在进行所有Ajax调用之前完成,因此仅将最后一个值添加到HTML。我以为可以确保readystate等于4,但是该解决方案不起作用。我还尝试将完整而不是成功用作Ajax事件。有什么见解吗

  • 我有这个脚本: 它应该对所有连接的设备进行测试。我的电脑上连接了两台设备。但是测试只在第一个设备上运行,脚本在第二个设备上运行之前停止。 我认为命令 是导致脚本崩溃的原因。 知道为什么会这样吗?

  • 我有一个项目,我的方法得到两个日期,它不断地向方法添加一天,直到两个日期相等,然后您可以通过查看一天添加了多少次来查看日期相距有多远。我的问题是,当满足日条件时,即使日、月和年必须都相同才能停止工作,我的while循环也会退出

  • 我正试图按照下面的代码读取一个txt文件: 我的txt文件如下所示: 当我不使用变量I时,仅用于在控制台打印我的文件,我的代码可以完美地工作。你们能帮我吗?如何将每个数据分离到数组中?我是Java初学者。

  • 问题内容: 我已经编写了一个包含循环的“ Hangman”游戏,不断询问用户字母,直到他们解决单词或耗尽生命。奇怪的是,在满足条件时循环不会停止。 这是包含循环的游戏逻辑的实现: 可变结果是从方法中获取返回值。这是实现。 难道是我返回导致循环不断循环的值的方式吗?我这样声明了这些值: 问题答案: 逻辑上,根据德摩根定律, 是相同的 这永远是一个真实的表达。 条件可能应该是 当应用与上述相同的法律时