收藏
回答

js 循环中调用异步方法的问题

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 Bug 客户端 2.2 2.2

代码如下:


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程序员,我有点没弄明白

最后一次编辑于  2018-09-19
回答关注问题邀请回答
收藏

1 个回答

  • 卢霄霄
    卢霄霄
    2018-09-19

    function test(){

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

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

                let temp = i

                request( temp ,function(res){

                callback(temp,res.result)

            })

        }

    }


    2018-09-19
    赞同 1
    回复 2
    • 巴斯光年
      巴斯光年
      2018-09-19

      谢谢。完美!


      2018-09-19
      回复
    • 卢霄霄
      卢霄霄
      2018-09-19回复巴斯光年

      推荐学习知识点~ js闭包

      2018-09-19
      回复