2016-05-09 4 views
0

Я проанализирую массив, который я создал в веб-работнике, обратно в основной поток. Массив включает в себя большое количество объектов THREE.Mesh. Когда я пытаюсь stringify этого массива:Как передать массив с несколькими объектами сетки

self.postMessage(JSON.stringify(mesh)); 

возникает ошибка: three.min.js: 182 Uncaught TypeError: Не удается прочитать свойство '971E7ACA-8223-4A5C-9F2F-E7966B58265F' неопределенные.

Как я могу справиться с этой проблемой в отношении объектов сетки ???

ответ

0

В современных браузерах, вы можете избежать stringifying массива и полагаться на structured clone algorithm, чтобы справиться с этим для вас:

self.postMessage(mesh); 

See the example on MDN

+0

Я попытался это одно, но есть еще одна ошибка: ** Uncaught DataCloneError : Не удалось выполнить 'postMessage' в 'DedicatedWorkerGlobalScope': объект не может быть клонирован. ** – Moehre

+0

У вас есть функции или другие недействительные свойства на вашем объекте? См. Http://stackoverflow.com/questions/33035854/error-cloning-element-from-scope-while-using-angular-and-web-workers – nils

+0

На самом деле у меня есть одна функция внутри, чтобы манипулировать некоторыми данными: 'self. onmessage = function (e) var материал = новый THREE.MeshNormalMaterial ({transparent: true, opacity: 0.4}); var mesh = []; for (var i = 0; i Moehre

Смежные вопросы