JS “클래스의 생성자는 비동기로 실행할 수 없다”에 대한 대처

자바스크립에서 클래스의 생성자는 비동기적으로 실행될 수 없다. 이에 대한 효과적이고 좋은 대처는 생성자 대신 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();

와!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다