자바스크립에서 클래스의 생성자는 비동기적으로 실행될 수 없다. 이에 대한 효과적이고 좋은 대처는 생성자 대신 static factory 패턴을 사용한다. 예를 들어서 생성자를 다음 코드로 대체한다.
class App {
...
static async create() {
const app = new App();
await app._setupThreeJs();
app._setupCamera();
app._setupLight();
app._setupControls();
app._setupModel();
app._setupEvents();
return app;
}
...
참고로 _setupThreeJs 매서드는 async로 선언되어 있다.
그리고 App 클래스의 객체를 생성할 때는 new App()이 아닌 다음 코드를 사용한다.
const app = await App.create();
와!
