js 循环中调用异步方法的问题
发布于 7 年前 作者 tao42 5080 次浏览 来自 问答

代码如下:

function test(){

    for( var i = 0;i<10;i++){

        //这里的request是一个异步方法

        request( i ,function(res){

            callback(i,res.result)

        })

    }

}

function callback(i,result){

    console.log( ‘i=’,i,'and result = ',result)

}

这里的问题是,request 是异步方法,立即返回,当回调发生时,i的值已发生变化?这个是个作用域的问题。

请问,这个问题怎么解决,并且能否说明这个相关的js知识点是什么?

另外,变量定义时, 用var 和const 有什么区别 ? 作为一个java程序员,我有点没弄明白

1 回复

function test(){

    for( var i = 0;i<10;i++){

            //这里的request是一个异步方法

            let temp = i

            request( temp ,function(res){

            callback(temp,res.result)

        })

    }

}

回到顶部