自从把OFFICE编译为wasm之后,吾就想解决怎样传递数组的事情。结果在TeaVM问题列表中,看到这样一个内容:
https://github.com/konsoletyper/teavm/issues/379
There's no way to transfer arrays between JavaScript and WebAssembly. So there's no way to transfer array between TeaVM/WebAssembly and JavaScript. If you want to transfer complex data structures between Java and JavaScript, you should prefer JavaScript target. Currently, targetting to WebAssembly gives no benefits, either in performance or memory consumption.
没有办法在JS和Wasm之间传递数组。所以没有办法在TeaVM和JS之间传递数组。如果你想在Java和JS之间传递复杂数据结构的话, 你应该使用JS target。目前这样做没有好处,性能和内存都一样。
is there a way to read & write from WebAssembly Memory(HEAP)
能否使用HEAP读写呢?
分析:
为什么不能传递数组呢?道理也简单,JS的数组是包含多种内容,在内存中乱七八糟。wasm想访问传递进来的数组,必须通过JS接口才有可能(肯定要再套一层)。而Wasm中没有对应的结构。
以目前来看,wasm提供一个访问方法,应该是唯一可行的办法。说起来容易,怎么做呢?