js即时函数在异步回调中的运用

在编程中我们会接触到循环和异步编程的情况,这时异步回调执行逻辑就会出现问题。我们用setTimeout来模拟异步的:

for(var i=0;i<3;i++){
        setTimeout(function(){
            console.log(i)  //3
        },20);
    };

结果输出三次3;

我们使用即时函数就能结果这个问题,使每个异步回调都有自己独有的变量:

for(var i=0;i<3;i++)(function(index){
        setTimeout(function(){
            console.log(index)  //0  1  2
        },20);
    })(i);

 

posted on 2018-01-12 11:33  世界之魂  阅读(112)  评论(0编辑  收藏  举报

导航