2017-06-17 44 views
0

在此之前被標記爲重複:我已閱讀張貼關於這一切的日子,所以我知道有噸類似問題上的SO,但沒有說到目前爲止,我已經看到了我需要了解的細節。JavaScript的 - 如何使用getter和setter方法來創建一個監聽

話雖如此,沒有一個好的評論的例子說明這個過程是如何工作的。有人可以用一個好評的例子來回答下面的問題,這樣我終於可以理解這種能力了嗎?

我有一個函數,我想調用一個文件,但我需要確保另一個事件在另一個文件已經發生之前,我叫它。這些文件沒有連接(一個是啓動應用程序的角度2 TypeScript文件,另一個是管理跳房子游覽的JS文件)。我知道我需要使用一個全局變量,我相信我讀過的最好的解決方案將涉及使用setter和getters。 全部例子我已經看到這似乎認爲它只是直觀的,省略了我瞭解它如何工作的部分。也許它很直觀,但我還沒有實現飛躍。

在打字稿文件全局變量:

global_variable = false; 

功能我想根據聽衆的JavaScript文件來調用:

function call_if_other_function_finishes() { 
    if (global_variable === true) { // I have the global already created 
     // run hopscotch tour 
    } 
} // how do I turn this into a listener? 

我必須打字稿文件的第一個成品的功能:

function someFunction() { 
    // run its code 
    GlobalFile.global_variable = true; // Should trigger the listener. 
} 

在此先感謝!

+1

使用一個承諾... – charlietfl

+0

不,不使用的setter/getter方法是使一切混亂。只需將全局變量設置爲可以調用的回調函數即可。 – Bergi

+0

我理解並感謝給我的替代建議。但是不管我是否最終使用了setter/getter方法,我仍然想要理解它。 –

回答

0

一種解決方案是爲你在做例子,然後運行它,當你需要它只是定義功能:

function someFunction() { 
    // run its code 
    call_if_other_function_finishes() // it's globally defined anyway 
}