2

我在 Angular 6 应用程序中使用 ArcGIS JS API 4.7。

并使用 esri-loader 在我的角度服务/组件中访问 esri 方法

使用以下版本..

"arcgis-js-api": "^4.7.2",
"bootstrap": "^4.1.0",
"core-js": "^2.5.4",
"esri-loader": "^2.3.0",
"esri-service": "^1.1.1",

似乎 esri 在 webassembly 中实现了部分 js 方法。因此浏览器使用以下文件

https://js.arcgis.com/4.7/esri/geometry/support/pe-wasm.js
https://js.arcgis.com/4.7/esri/geometry/support/pe-wasm.wasm

这专门用于 JsonUtils.fromJson() 方法

https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-support-jsonUtils.html#fromJSON

该代码似乎在其他浏览器中运行良好,但是我在所有版本的 IE 中都出现错误,包括 Edge

在 IE 11.2791.12 中测试

边缘 38.14393.2068.0

以下是我的代码

import { loadModules } from 'esri-loader';

...
...

public static async createGeometry(
    geometryJson: any
  ): Promise<__esri.Geometry> {
    const [JsonUtils] = await loadModules([
      'esri/geometry/support/jsonUtils'
    ]);
    return JsonUtils.fromJSON(geometryJson);
  }

以下是错误

no native wasm support detected
ERROR abort("no binaryen method succeeded. consider enabling more options, like interpreting, if you want that: https://github.com/kripken/emscripten/wiki/WebAssembly#binaryen-methods"). Build with -s ASSERTIONS=1 for more info.

[object Error]{description: "no binaryen...", message: "no binaryen...", name: "Error", stack: "Error: no b...", Symbol(rxSubscriber)_g.byk0skaafg7: undefined}

过去有人遇到过吗?

4

1 回答 1

1

当然这是意料之中的。

它使用 WebAssembly,而 IE 永远无法支持 WebAssembly。对于 Edge,您应该更新Windows 10 Fall Creators Update。具体来说,EdgeHTML( NOT Edge) 版本 16 支持 WebAssembly。

于 2019-03-27T01:33:17.423 回答