00:01
下面我们来学习这个E补漏的。来下一个台词二。一不落的呢,我们还是一样的,所有load都是一个函数。然后呢,就是可能作为参数。一波动的呢,它是这样的,它首先需要调一个方法叫A返回值是一个com。好,那么可能你需要做一些异步操作,那么我们用延时定时器来模拟这个异步操作。比如一秒,那么我们会调back的方法。那么参数呢,和上面的这个之前讲的这个同步参数一样的,那map me。这几个参数。
01:00
好,这是一步漏的,他可以等一步操作做完之后,再开始干其他活。他一定会等他做完之后才开始干活的。下面我们可以去演示一下这个过程啊。好,我们呢,在这里打印一下这个T2。对吧,代表T2这个定时器到点了,那么我们在这里再打印这个T1。OK,然后呢,我们把这两个log都用上,在这个处理的时候我们用上啊。啊,这一个呢,其实就没啥用了。我们要处理的是JS文件。我们呢,使用多个load去处理,我们就把我们这个配置的这两个load都加上,诶我先使用T1,再使用T2。
02:05
那么这里写文件后缀名的时候可以不写啊,可以省略不写。好了,那么之前我们也说了,它的直径顺序是从右到左,从下到上。所以他实际上是先执行这个。咱们的这个test,再执行这个TEST1。那么我们就观察啊,看这个TEST1的都执行的时候,是不是等TEST2的这个异步操作做完之后再执行呢,我们来看效果。好,一旦打包他呢,你看先等T2打印完之后再打印T1,而且打印T2这里要稍微注意一下,就是它是一秒之后才打印的。然后呢,接下来才会执行这个TEST1这个load。所以这里是没问题的,一步漏呢,他会一定会等这个一步操作做完,然后再执行下一个漏。
03:04
那么一步操作操作做做完,就看这copy back的方法什么时候调用,一旦靠back方法被调用了,他就认为异步操作做完了,就会开始执行下一个漏。所以当我们有一步代码的时候,就一定要放在这个一步的执行。如果同步代码去执行这个异步代码的话,诶,它就会有问题了。我们来看啊。我在这里呢,加了一个也是一秒。这里面呢,我发的是这个同步load。这样会报错的啊,这样会报错的OK,那么因为是这种函数,所以这个Z指向呢也是OK的。我们,呃,T这里也是这样写吧,T就不变了。好,那么这时候呢,我们反过来写啊,我们先先执行T,一再执行T,我们看它会不会等T1执行完再执行T。
04:01
你看他明显没有等待他一上来打印那个TEST1,因为一上来他就执行了,接着他发现你没有返回值,他认为你返回值是按地DeFine的,那么T2去处理的时候,接收到的可能就是按DeFine。我们也可以打印一下这个啊,大家也可以看一下这个的内容。因为你上一个load没有返回值,所以他接收到这个案find,那么案find去打包的话就会出问题了。你看就会出问题了。案例,Find。好,这个时候呢,我们再去调这个。Call back。OK,他这里报了一个错误啊,我们看一下。呃,Call back调用了之后呢,那么他报的是test的错误,因为他之前认为已经做完了,你最后一秒钟才call back,他就会报这个错了。他应该早就要被调用,而不是卸载调用。
05:00
所以就是同步漏洞的意思,就是同步漏的不能执行一步操作啊,因为他不能等一步操作做完之后再去往下执行,他压根不等直接就往下执行。然后回过头来再去调这个方法的时候,就会报错了,因为当他执行完毕之后,当同步的执行完毕之后,就代表它那边的call back就已经被调用了,你再次调用就会报错。就这个意思。好,所以我们这里就还原一下。嗯。这种写法我们就直接注释了啊。那么最终得出结论就是同步的中不能进行一步操作。他不会的。好,要想进行异步操作,必须用异步漏顿的方式调方法,那么这就是异步漏的执行方式。打印我就不打印了。
06:00
好了,那么这就是elo的一个用法,调用a think,得到一个call back call back什么时候调用,那么就代表E什么时候执行完,它就会开始执行下一个漏。
我来说两句