收藏
回答

调试工具闭包的执行逻辑不正确

问题模块
API和组件


var a = [1, 2, 3, 4];
var heheTimeout = cb => setTimeout(cb, 1000 * Math.random());
a.forEach((num, index) => {
   wx.getImageInfo({

     src: 'path/to/an/image',

       success: res => {
           heheTimeout(_ => {
               console.log(index) // 正确, 0,1,2,3乱序
           });
           wx.canvasToTempFilePath({

             x: 0,

             y: 0,

             width: 100,

             height: 100,

             destWidth: 100,

             destHeight: 100,

             canvasId: 'tmpCanvas',

               success: res => {
                   console.log(index); // 不正确,四个都是同一个值,例如输出四次3
               }
           });
       }
   });
});

代码排版已优化,有劳官方验证。注意,这是在开发者工具里遇到的bug,在手机上不会有。

最后一次编辑于  2017-08-01
回答关注问题邀请回答
收藏

4 个回答

  • 🍜tommy
    🍜tommy
    2017-08-01

    问题我已确认过,请官方验证。P.S. 排版已改好

    2017-08-01
    赞同 1
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2017-08-03

    你好,是 wx.canvasToTempFilePath 在开发者工具的实现有问题,我们会尽快修复。

    2017-08-03
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2017-08-01

    小程序的js执行环境是成熟的js执行环境(在各个平台上使用的环境不一样)。所以对于这类问题请首先确认是不是你自己的代码造成的问题,如果确实有执行环境的问题,麻烦提供尽可能完整的代码,并说明是在什么平台下出现的问题。


    P.S. 请改善代码排版。

    2017-08-01
    赞同
    回复
  • 铭锋科技
    铭锋科技
    2017-07-31

    我不做评论

    2017-07-31
    赞同
    回复