繁体   English   中英

将ArrayBuffer转换为Array,反之亦然

[英]Convert ArrayBuffer to Array and vice-versa

我正在使用Parallel.js和Q.js在我的应用程序中实现“多线程”。 因为我只能将可序列化的对象传递给Parallel.js而我需要传递一个ArrayBuffer我将ArrayBuffer转换为Uint8Array作为JSON对象,使用此JSON.stringify(new Uint8Array(bytes)) ,然后在Parallel.js中我转换将JSON对象添加到一个对象,然后尝试Uint8Array,然后尝试这样的缓冲区

var object = JSON.parse(data[0]);
var bytes = new Uint8Array(Object.keys(object).map(function(k) { return object[k]}));
var buffer = bytes.buffer;

这通常应该有效,因为Uint8Array有一个名为buffer的原型,但缓冲区总是未定义的。 对象和字节是正确的,当我看一下字节的原型buffer ,我可以看到这条消息: [Exception: TypeError: Method Uint8Array.buffer called on incompatible receiver #<Uint8Array>]我真的不知道应该如何解决这个。

有人知道修复吗?

虽然我不知道为什么不工作,你可以在值转换为Base64,反之亦然,如所描述这里

// encode
var str = base64EncArr(new Uint8Array(4)); // "AAAAAA=="
// decode
var arr = base64DecToArr("AAAAAA=="); // [0, 0, 0, 0]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM