循环不'调用$.get时无法按预期工作
Loop doesn't work as expected when $.get is called
我很难理解循环中的$.get调用。在下面的例子中,我在函数内部调用了$.get(我在$.get上读取的文件对这个问题无关紧要),它似乎是在第一个循环完成后才读取的。
我希望控制台显示:
---
1
---
2
---
3
---
但正在显示
1
2
3
4
5
6
7
8
9
10
---(11)
你能告诉我为什么吗?
http://jsfiddle.net/qh6zn514/1/
<Button id="clickme">Click me</button>
$("#clickme").click(function() {
for ($i=0;$i<=10;$i++)
{
readNumber();
console.log($i);
}
})
function readNumber () {
$.get ("file", function(txt) {
console.log ("---");
});
}
传递给$.get的函数是异步执行的,这意味着它可以立即返回,而无需等待get完成。因此,循环运行非常快,并记录数字。然后,每个get请求完成并记录---
http://jsfiddle.net/qh6zn514/1/
$("#clickme").click(function() {
for ($i = 1; $i <= 10; $i++)
{
readNumber($i)
}
})
function readNumber ($i) {
$.get ("file", function(txt) {
console.log($i)
console.log ("---");
});
}
输出:
1
---
2
---
3
---
4
---
5
---
6
---
7
---
8
---
9
---
10
---
相关文章:
- jQuery Ajax GET请求工作不正常
- 如何使Jquery编码的动态下拉菜单与PHP GET变量协调工作
- Jquery Ajax POST不工作.适用于GET
- GET在POST不工作XMLHttpRequest的情况下正常工作
- 从本地文件运行时,$.get()无法正常工作
- $resource 'get' 函数如何在 AngularJS 中同步工作
- 表达快乐.js Restfy Koa app.listen() 和 app.get() 如何工作
- Angular2 http.get代码不工作
- 这个get方法似乎可以工作,但控制台中存在错误
- AJAX Get不是't工作
- Date.prototype.get日期;不能在Safari中工作
- $.get-Ajax中的alert()在IE中不工作
- 我的Ajax GET是't工作
- 我的jQuery.hooper's工作得很好,但我可以;t get.点击开始工作
- 角度$http.get不工作
- jQuery.get 方法未按预期工作
- 为什么 $.get() 无法正常工作
- window.location 无法使用 get element by id 来工作
- Angular HTTP GET请求在浏览器中工作时返回未定义
- Angular JS:使用 $http.get() 导入 JSON 数据 - 在控制器中工作,不在服务中 - 为什么