내가 생각한 것처럼 맞춤 코드가 동기식이 아니라는 사실을 발견했습니다. ObjectA가 arraybuffers, dataviews 및 typedarrays을 사용Javascript/mycode가 동기가 아닌 이유
ObjectA = function()
{
var pointer;
var value =[];
this.set_pointer = function (p) {pointer = p;}
this.return_value = function() {return value[pointer];}
}
ObjectB = function()
{
var SCOPE = this;
var OBJ = new ObjectA();
....
this.reset = function()
{ OBJ.set_pointer(0);}
this.draw = function (what)
{
SCOPE.update();
OBJ.set_pointer(from);
OBJ.get_value();
// do somethings with Three.js
// draw some lines and some little pointclouds.
// do some things
// update two text elements
}
}
Main = new ObjectB();
Main.draw(7);
Main.reset();
:
나는이 의사 코드가 있습니다. ObjectB는 Three.js를 사용하여 매우 복잡한 3D 물체를 그립니다.
문제는 내부 '드로우'입니다. OBJ.get_value(); 대신 포인터 값 0 (영)을 사용하고 있습니다. 비정상적으로 (생각했던대로) main.draw (7)는 처음 실행되지 않고 나중에 Main.reset(); Main.reset()이 실행 중이므로 0이됩니다.
DOM 동시성을 기다릴 필요가 없습니다.
이 bechaviour의 이유는 무엇입니까? 세명이 쓰는거야? OOP 스타일을 사용하고 있습니까?
왜 이런 일이 발생하는지 확인할 수있는 방법이 있습니까? 사용 Three.js를 태그 죄송합니다 :
어떤 생각
주를 감상 할 수있다.
때때로 '이' '창'대신 개체의 자체 인스턴스를 가리키는 될 수있는 NO synchonism의
'이'의 잘못된 사용을 .... 검토합니다. – Pointy
@Pointy ... 음, 믿어주세요. 코드가 복잡하지도 않고 복잡하지도 않습니다. 그 이유가 될 수 있다고 생각하면 조언을 해주십시오 – civiltomain
문제를 반복하는 코드를 실행할 수있는 jsfiddle.net 샘플을 만드시겠습니까? –