我如何在没有 lte 的情况下进行异步调用?
how do i do asyncronous calls without let?
我昨天发现 iphone 不允许使用 let。这让我很困惑如何处理像 ajax 这样的异步调用和超时。波纹管是显示差异的示例代码。如何在不使用某些设备不喜欢的关键字的情况下使 var half 的功能与 let half 相同?
$("body").append("VAR:<br>");
for (var i=0;i<10;i++) {
setTimeout(function(){
$("body").append(i +"<br>");
},Math.random()*1000);
}
//make lets come after var
setTimeout(function(){
$("body").append("LET:<br>");
for (let i=0;i<10;i++) {
setTimeout(function(){
$("body").append(i +"<br>");
},Math.random()*1000);
}
},2000);
如果没有 IIFE,您的代码将只有一个 i 实例,并且将始终显示 10
。要创建局部变量,您需要 function.Every 函数有自己的局部变量。在代码中,我调用了一个 IIFE 并将 i
作为参数传递。每个函数都有自己的当前 i
.
副本
简而言之,如果你想要一个用var
关键字声明的局部变量,你需要一个function
。在我们的例子中立即调用函数
$("body").append("VAR:<br>");
for (var i=0;i<10;i++) {
(function(e){
setTimeout(function(){
$("body").append(e +"<br>");
},Math.random()*1000);
})(i);
}
见代码
var body = $("body")
body.append("VAR:<br>");
for (var i=0;i<10;i++) {
(function(e){
setTimeout(function(){
body.append(e +"<br>");
},Math.random()*1000);
})(i);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
</body>
这是你的 JSFIDDLE
我昨天发现 iphone 不允许使用 let。这让我很困惑如何处理像 ajax 这样的异步调用和超时。波纹管是显示差异的示例代码。如何在不使用某些设备不喜欢的关键字的情况下使 var half 的功能与 let half 相同?
$("body").append("VAR:<br>");
for (var i=0;i<10;i++) {
setTimeout(function(){
$("body").append(i +"<br>");
},Math.random()*1000);
}
//make lets come after var
setTimeout(function(){
$("body").append("LET:<br>");
for (let i=0;i<10;i++) {
setTimeout(function(){
$("body").append(i +"<br>");
},Math.random()*1000);
}
},2000);
如果没有 IIFE,您的代码将只有一个 i 实例,并且将始终显示 10
。要创建局部变量,您需要 function.Every 函数有自己的局部变量。在代码中,我调用了一个 IIFE 并将 i
作为参数传递。每个函数都有自己的当前 i
.
简而言之,如果你想要一个用var
关键字声明的局部变量,你需要一个function
。在我们的例子中立即调用函数
$("body").append("VAR:<br>");
for (var i=0;i<10;i++) {
(function(e){
setTimeout(function(){
$("body").append(e +"<br>");
},Math.random()*1000);
})(i);
}
见代码
var body = $("body")
body.append("VAR:<br>");
for (var i=0;i<10;i++) {
(function(e){
setTimeout(function(){
body.append(e +"<br>");
},Math.random()*1000);
})(i);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
</body>
这是你的 JSFIDDLE