Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-如何在中使用setter和getter创建侦听器_Javascript_Listener_Getter Setter - Fatal编程技术网

JavaScript-如何在中使用setter和getter创建侦听器

JavaScript-如何在中使用setter和getter创建侦听器,javascript,listener,getter-setter,Javascript,Listener,Getter Setter,在这被标记为重复之前:我已经读了一整天关于这一点的帖子,因此我知道有很多类似的问题,但到目前为止,我还没有看到一个涉及到我需要了解的细节 话虽如此,关于这个过程是如何工作的,还没有好的例子。有人能用一个评论良好的例子回答下面的问题,这样我才能最终理解这个能力吗 我有一个函数,我想在一个文件中调用,但我需要确保在调用它之前,另一个文件中的另一个事件已经发生。这些文件没有连接(一个是启动应用程序的angular 2 TypeScript文件,另一个是管理跳房子巡演的JS文件)。我知道我需要使用一个全

在这被标记为重复之前:我已经读了一整天关于这一点的帖子,因此我知道有很多类似的问题,但到目前为止,我还没有看到一个涉及到我需要了解的细节

话虽如此,关于这个过程是如何工作的,还没有好的例子。有人能用一个评论良好的例子回答下面的问题,这样我才能最终理解这个能力吗

我有一个函数,我想在一个文件中调用,但我需要确保在调用它之前,另一个文件中的另一个事件已经发生。这些文件没有连接(一个是启动应用程序的angular 2 TypeScript文件,另一个是管理跳房子巡演的JS文件)。我知道我需要使用一个全局变量,我相信我读过的最好的解决方案是使用setter和getter我所看到的所有例子似乎都认为这是直观的,而忽略了我理解它是如何工作的部分。也许这是直觉,但我还没有做到这一点

TypeScript文件中的全局变量:

global_variable = false;
function someFunction() {
    // run its code   
    GlobalFile.global_variable = true; // Should trigger the listener.
}
我想基于侦听器在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?  
我需要在TypeScript文件中首先完成的函数:

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

提前谢谢

一种解决方案是按照示例中的方法定义函数,然后在需要时运行它:

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

使用承诺…不,不要使用让一切都变得混乱的setter/getter。只需将全局变量设置为您可以调用的回调函数。我理解并感谢您给我其他建议。但是不管我最终是否使用setter/getter方法,我仍然想理解它。请注意,setter/getter只处理属性,而不处理变量