Azure Storage JavaScript SDK预览版15在IE11中运行异常问题排查请求
咱们来拆解这两个报错的核心原因,本质都是IE11作为老旧浏览器的特性支持不足导致的:
第一个报错的成因:
报错信息This browser lacks typed array (Uint8Array) support which is required by buffer v5.x. Use buffer v4.x if you require old browser support.说得很直白——IE11本身不支持ES6引入的TypedArray类型(比如Uint8Array),而你的SDK依赖的buffer库v5.x版本正好需要这个特性才能正常工作。现代浏览器(比如Edge、Chrome)早就实现了ES6的这些特性,所以在它们上面运行没问题,但IE11完全不兼容。第二个报错的成因:
报错SCRIPT438: Object doesn't support property or method 'fill'是因为fill()是ES6给数组新增的方法,用来快速填充数组元素,而IE11并没有实现这个方法。azure-storage.blob.js的29164行代码里调用了这个方法,IE11识别不了这个不存在的方法,就抛出了这个错误。
总结来说:问题根源就是IE11对ES6及以上的JavaScript新特性支持度极低,而你当前使用的Azure Storage Blob SDK依赖了这些IE11不支持的特性,导致在IE11中运行失败;而现代浏览器已经全面兼容这些特性,所以可以正常运行。
内容的提问来源于stack exchange,提问作者Bill Weston

