如何在另一个对象达到某个状态后运行函数

时间:2018-05-12 03:34:56

标签: javascript asynchronous callback

我有一个游戏。我有3个文件app.js,game.js,modal.js。 Modal在模态的“下一个”按钮上设置一个事件监听器,并跟踪“currentStep”。也就是说,模态有多个步骤。现在,我想在app.js文件中启动游戏,只有在用户完成模态之后。在我的模态中,我有:

constructor(){
    this.currentStep = 0;

}
complete() {
    return (this.currentStep >= 4 ? true : false);
}

activate() {
   ....



    nextButton.addEventListener( 'click' , (e) => {

       if (this.currentStep === 0) {
          firstInstructions.classList.add('hideMe');
          firstGif.classList.remove("hideMe");  
          ....    
       }else if (this.currentStep === 4) {
          modal.classList.add("hideMe");
       }
    this.currentStep++;
});

}

现在,基本的一点是我不知何故想让我的app.js知道用户何时完成模态,以便我可以运行game.play(); 如下所示:

 const game = new Game();
 const modal = new Modal();
 modal.activate();

 // game.play() WHEN modal.complete

当有人发生这种情况时,有人可以建议Modal让app知道它是否完整的正确方法。我知道我可以使用while循环并继续检查是否modal.complete()以及何时运行game.play()但这似乎是错误的。 感谢。

0 个答案:

没有答案