Порядок вызова функций javascript
У меня есть три функции в JavaScript, parsing
, init
а также animate
, Parsing
должен быть вызван первым, потому что без него positions
массив не изменен, что функция init
необходимо. Как ни странно, живой нуждается в controls
переменная, созданная init
но раньше их вызывали одновременно, и раньше это работало. Я пробовал все возможные комбинации вызова функций, но либо controls
не определено или positions
является. Это последняя итерация моего кода.
var positions = [];
parsing();
function parsing() {
fetch('Petit_film_256_atomes.txt').then(response => response.text()).then(text => {
const arr = text.split('\n')
.map(line => line.trim())
.map((arr) => arr.split(' '))
.map(([size, x, y, z]) => ({
size: Number(size),
x: Number(x),
y: Number(y),
z: Number(z)
}));
while (arr.length > 0) {
positions.push(arr.splice(0, size).slice(2));
}
init();
animate();
})
}
...
function init() {
renderer = new THREE.WebGLRenderer({antialias:true});
renderer.setSize(WIDTH, HEIGHT);
document.body.appendChild(renderer.domElement);
...
console.log(positions);
for (var i = 0; i < 256; i++) {
atom = sphere.clone();
atom.position.set( positions[0][i].x, positions[0][i].y, positions[0][i].z );
scene.add( atom );
group.push( atom );
}
...
controls = new THREE.OrbitControls(camera, renderer.domElement);
}
function animate() {
requestAnimationFrame(animate);
renderer.render(scene, camera);
controls.update();
}
Так же console.log(positions)
показывает не пустой массив, но отображается ошибка positions
не определено У кого-нибудь есть идея, почему?