00:00
啊,我们来去专门讲一下这个监听,那么监听呢,我们前面讲过,它有节点监听啊,有四种,那么一种呢是节点创建,那么还有这个节点删除,那么以及节点的数据变化,还有子节点变化啊这四种事件。那么四种事件呢,它只能对三个操作啊来去绑定事件,那么一个是sta操作。那么还有呢,是get操作以及iOS操作可以绑定时间啊。那对应的方法是哪三个方法呢?对应的方法呀,是一个方法,那么这个离子方法呀,就类似于那个T这个指令操作啊。那么然后呢,我们这个有个get get方法,那么就类似于这个get这个指令操作。那么然后呢,还有这个get To Get to啊就类似于这个LS这个指令操作。好,那么也就是说咱只能在这三个方法里面可以添加监听。添加机顶监听啊,因为我们这个exist它有这个watch这个这个参数啊,那么然后呢,还有这个,嗯,咱们这个get也有一个watch参数。
01:05
那么以及呢,我们叫get children也有一个卧参数,那么其他方法有这个卧参数吗?没有。啊,那么这三个卧体监听啊,它的玩法呢,都是一样的啊,咱们以任何一个为例来演示一下就可以了,那比如咱以这个获取子弟的这个这个这个这个方法为例来演示一下。那我们之前呢,把这个word这个参数呀,给它设置为false,那么现在我把它改成一个处啊,它就可以呢,启用监听了。那么哪个地方可以鉴定到呢?好,那么他在我们的这个里面就可以监听到我们之前获取链接的时候呀,那这个呢,有一个监听事件,那在这里面也可以监听到节点变化的时间啊。它不仅可以获获取到那么链接变化的时间,也可以获取到起点变化的时间。好,我们来可以呃,演示一下,看看这个最终的效果啊。好,我们来去啊运行一下啊,当我们这个运行的时候呀,咱们这个要监听到的话啊,但程序呢,主程序不能结束。
02:07
那么在这里的话,咱主程序啊,就咱这个卖方法,那卖方法不能结束,如果你卖方法结束了。那么该程序就已经结束了。那么将来即使触发监听了,那我的这个程序还能捕获到吗?就无法捕获到了啊,所以咱这个程序呢,不能结束来一个system.in.read那加上这样的一个操作之后呀,我们再来去啊,重新启动一下。咱们这个程序啊。啊,那么此时呢,我们的程序呢,已经执行完成了,但这里呢,还依然报了一个错,哎,报了它呢,报了一个no no for it test1,哎,哪一行报错呢?那delay的这一行报错了。因为这个节点呢,之前已经被我给删掉了,结果我现在又要去上一次,他就把报没有这样的一个节点错误啊,那我们为了避免出现错误,咱可以把这个呢给它修失掉。
03:08
啊,不要让他每次都执行这样的一个方法啊。那么来看一下啊,咱们这个应用程序呢,有没有关闭啊,链接已经关闭了,因为我这个程序有异常,导致他执行了这个发动这个位置了啊,然后呢,连接关闭。连接一旦关闭了,但监听呢?又无法监听到了。好,我们再来去重新启动一下我们这应用程序。那么此时呢,应该是没有异常了。好了,启动呢,已经启动成功,那么他已经获取到当前基点的子节点了,那么这个监听事件呢,应该已经绑定上去了。当我们当我们在这个命令行工具里面呢,我们来去创建一个子集点试一下啊,我们来去correct是it硅谷给添加一个T这样的个字节点。
04:01
那就来一个啊SS,随便写个内容吧。大家注意看这个变化啊,我这里呢,一回车,然后这个地方获取到链接了啊,又获取了一个呢,获取了一个链接,此此时是获取链接了,不是获取链接,只是呢,走到我们的这个监听里面去了啊。然后呢,走到这个里面去了,打印出的这样一句话,那在事件类型什么类型的呢?那事件状态呢,属现的属于同步链接了然类型的话呢,什么是no the children changed。哎,那么节点子节点发生变化啊。啊,基点的子发生变化。那么是哪个事件呢?啊,其实就是子节点发生变化这个事件啊,就这个事件。啊,那么啊,他最终呢,也走这个阶梯里面去了,那说明在之前这个获取链接这样的一个时间判断还是有问题,还不够严谨,那节点变化呢,也到这里面去了,那既然的话呢,这个闭锁开始放行,那肯定也是不合适的。
05:01
那我们来看啊,咱们这两个。啊,这两个的事件状态都是single connected,你看获取链接这个呢,也是single,然后是connected,它俩都是一样的啊,但类型不一样,一个类型是一个钠,那么一个类型呢,想的是节点的子发生变化。好,那我们呢,要加一层判断,那么才能判断出它是不是获取链接了啊,如果你是囊这个类型的,才说明你是获取的链接了,如果你不是这个那类型的,那就不是会议链接了啊。那大家可以呢,来一个嗯,并且的一个判断。那么然后呢,咱们在这里啊,有一个叫event,然type这样的一个霉菌类,这个霉菌类里面咱们就有各种事件啊,比如说呢,有那这个时间,有机体的子发生变化这个时间。还有节点创建,节点的数据发生变化,节点删除时间。
06:00
那我们这的明显是一个nu啊,是none的时候,我们就认为呢,会到链接了啊啊,那么此时呢,啊,咱们和T。这个对象里面的。那对象里面这个类型啊,是T里面的事件类型。点上的是,呃,咱应该是event event,点上get type。那么类型是none的时候,说明是后续链接。那么如果你是这样的一个状态的话,说明是关闭连接,那么A,那么说明什么呢?说明咱们是啥呢,是呃,可能是节点时间了,对吧?啊节点时间,比如说呢,我们当前呢,是。我们当前呢,咱们是子节电发生变化的一个节电时间啊。好,那么咱们这里呢,就这样输出一下啊,那么写好之后呀,我们再去重新启动一下啊。重新启动一下,那么现在咱们的节点呢,这个事件啊,应该会输出这个东西啊,OK,就不会再去输入这个东西了。
07:03
那么这样呢,我们的程序啊,就更加完善了。好,来你这个当前节点子节点已经获取到了,同时添加了一个监监听事件,那如果我给这个节点内添加一个子节点的话,我来再创建一个子节点啊,来一个test啊一这个玩意儿念子极点发生变化了,那么此时呢,是节点时间,哎,不是获取链接的那个时间啊。当然你也依然可以打印下这个简单的对象,那我这的话呢,我就没有打印了啊。那么这个节点事件注意了啊,咱们是属于一次性的事件。那么我怎么给它变成啊多次呢?比如说再去创建一个啊TEST2这样的一个子节点,它会不会触发这样的一个事件呢?那我们再去运行走语文处罚没有处罚,它只是一次性,一次性的啊。那如果你想再去处罚的话,再添加监听事件的话,那你得要再去调一下,那么这个K,这个get to这个方法。然后呢,再来去把这个不玩类型的这个watch设置为true才可以。
08:01
那这样的话呢,他可以再处罚一次。那一般情况下呀,节点是用触发的,咱一般不写在这个地方啊,那该写哪个地方去弄。啊,咱直接写在当前这样的一个,嗯,获取子弟的这个方法里面去。你这个获取子集点这个方法呀,我们除了这个路径还有这个尔类型的watch之外,那么其实呢,咱的这个波啊啊,还可以选择是一个对象。啊,握起对象,那么进而呢,在这个里面的添加时间。那这样的写法呢,才会更好一些啊。OK,那我们这个地方呢,呃,咱们可以去用一个是word,那么这才是我们平时用的最多的一种鉴定方式了。那么这里面呢,我们可以去来输出一下啊,这是节点的子节点能发生发生变化,那么这个呢,事件它也是一次性的,那你想多次法怎么办呢?那咱可以呢,把这个获取子一点这个方法呀,给它封封装成一个独立方法啊。
09:02
那么然后在这里面呢,我可以去递归调用一下。那我再调用一下这个这个方法不就可以了吗。哎,那既然的话呢,就可以做到无限次的这种监听了。好,那这个的话呢,我们就先不管这个操作了啊,那后续的话呢,我们如果用到了,那咱们可以呢去封装一下,那暂时的话呢,就演示演示一下这个一次性的时间就可以了。好,那么此时呢,我们来去重新启动。啊,看看能不能接听到啊。好,我已经启动成功,那么依然可以获取到当前节点,子节点,它里面有一个test,一有test,二还有test这个节点。那我们呢,来去删除节点,让你创建节点,那么子节点是发生变化,那我们删除节点,子节点不也发生变化了吗?它也会触发这样的一个节点变化这个事件啊。
10:00
好,那我们来一个啊,Delete是it硅谷,比如说呢,我就把TEST2这个节点给删掉,同一回车也触发了节点的子节点发生变化了。那么然后呢,我们再来删除一次,我把这个TEST1给它删掉,它会不会处罚呢?就不会处罚了啊,它属于一次性的。如果你想再触发一次的话,你可以把这个话再调一下就可以了,把它跟着蚯蚓再调一下。然后再去评价一下这个这个时间。啊,那么啊,咱这个监听啊,你暂时呢,就先演示这么多,那么像我们的这个,呃,这个Z4里面的监听时间,那么以及呢,Get data里面这行时间,你们可以自行去玩一下啊都类似。
我来说两句