调试工具闭包的执行逻辑不正确
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,在手机上不会有。