问题:
像平时我们直接去在for循环里面设置定时器的话,你会发现他就只会执行一次。
例如:
for(let i= 1;i<layers.length;i++){
let s = layers[i].getSource().l
for(let i = 1; i < 10; i++) {
clearInterval(i);
}
setTimeout(function(){
console.log('source.l',s)
},1000);
}
输出结果:
明明是两个结果的,结果她却只输出了一次
修正后:
let layers = map.getLayers().a;
console.log('layers',layers)
for(let i = 1; i < 10; i++) {
clearInterval(i);
}
var i =1;
var timer = setInterval(function(){
if(i == layers.length) {
clearInterval(timer)
}else{
let s = layers[i].getSource().l
console.log('source.l',s)
}
i++;
},1000)
结果:
ok,感觉对您有帮助的话可以帮我点个赞,谢谢