00:01
那下面我们要讲的一个access的特性呢,就是它能够去干嘛呢?取消请求,当你请求的发出去,并且还没有什么完成,对不?这个完成可能成功,也可能什么失败。那这里面呢,我们来看一下我们要做的一个效果。打开音乐。啊,这个页面呢。注意我点击这个第一个按钮是去获取商品列表一的,你就要发一个请求一是吧。那我点按钮二了,需要去发一个请求啊。好,那这个请求处理是不是有可能需要一定的时间。那我在这个处理过程中,我能不能去点击取消请求按钮,去取消未完成请求了,有可能吧,有可能。那我们现在呢,就来处理一下,那首先呢,我得给大家制造两个接口,这个接口呢。
01:07
还不能立即返回,不然我没机会点,因为太快了,能听懂吗?好啊,我这里面呢,写了一个serve点解首页。啊,就是expression啊,写了两个路由。啊,这个文件呢,已经写好了啊,这个我就不太再去多讲了,它启动的那个动号是什么了,4000,那我是不是要去执行这个serve DS。当我们怎么执行呢?通过命令怎么执行?嗯。通过命令怎么执行啊?啊。现在怎么执行一个用漏怎么执行一个JS文件都不会了,就漏的这个连JS啊。
02:02
因为他在根目录下面是不是是吧。不要这样欺骗我啊。是吧,啊这个里面呢,有一个配置没有配没关系啊,不用管它,没关系不影响。那也就是说是不是我的后台服务器启动了吧,那启动之后呢,来看一下这个里面我用通过P对象去注册了两个路由。大家看一下,一个是PRODUCT1,一个是PRODUCT2,是不是我们两个路径当它的杠号是4000是不是?那我这里面有意的做了一件事情。什么时候才返回啊,是不是延迟一定的时间才返回来,模拟网速是不是有点慢呢?能听懂吧,而且延迟的时间吧,是什么时间大家能。
03:00
算上吗?是不是一秒到三秒钟之间,对不对啊,1000没有1000秒,一秒到三秒是吧。啊,当然你能回答说1000~3000也是能看懂了,只是说的有点快啊,说错了而已,没关系啊,好。看到吧。啊,好。那接着呢,我这里面最终返回的是不是个数阶层数组吧,是个数组,当然传递的时候肯定传递是阶层数据啊,里面是一些对象是吧,没什么,看看普大卡。是不二的一些数据,什么2.1 2.2 2.3能看到吧,好,当然我这个也是什么。是不是一秒到三秒,那我问大家,你说我先发先请求接口一再请求结合,是不是一定接口一先返回来。不一定吧。是不是那个为例对不对,好这个要知道啊。
04:04
那现在我这两个接口实际上是可以访问了,对不对,那现在呢,我们通过access呢,来去访问一下。啊,在这里面,我这里面呢,有。几个按钮啊,刚才打开过是吧?啊已经打开了,有几个按钮来,我要去写点代码是吧。那首先还是跟前面一样。最先现在干吗?是不是引入access你才能用它嘛,没问题是吧,现在要写一点自己的GS。那我首先是不是可以写一个它来去发请求是吧?写这个函数当一个写了,另外一个好写。Access点。是吧,Get吧,大家看一下我们,嗯,注册的是什么类型的请求不get,那我点盖吧,或者说我当函数行行不行也可以不也可以。
05:07
那好了,那是不是至少要先指定个ul对吧?好,那我们在这里面呢,当然你可以是不是可以去用base ul来去服用是吧?啊这都这不是我们研究的重点了,那么好使了几千四,接着后面有一个假设,我先去寻求他吧。把这个干掉啊,关掉是不是这个路径看一下需要我带参数数据吗。他们没有读参数,所以我不需要传参数,对不对。是道理吧,是道理,接着我干嘛去,其他的也不用指定了呗,点认是吧,接着了。是不是得到一个response,现在可以进行打印输出,对吧,这是不是请求一成功了。
06:08
对吧,同时把那个数据取出来,怎么取方词点对的。美女美女,那再来一个呗。再来一个吧,还有一个按钮,发请求的。这个是吧,其实就是把这个一变成什么啊,这里面是也是把一变成二,其他的不用动吧啊,这里面也是要把这个变成二,这看得出来是不是。对吧。好,还有一个是他呀。他干嘛去,是不是取消请绪,但是我们现在会怎么,我们懂得怎么取消请求吗?我们还没学语法,所以我先简单的提示一下,说我们要干的事情啊,取消请求对吧,可以吧,我们先看一下,但能真正取消吗?
07:08
我啥也没干,我都没执行取消请求的语法,是不是啊?好,来刷新一下。先看一下两个请求能不能啊,能不能发,能不能收到数据是吧。来先看一下这个里面。来注意啊,点一下它。大家看到我正在发球喷底,是在请求过程中,这个是不是200得到的数据?注意啊,这里面是不是有响应数据了,得到是一的数据,你看一点一点看到了吧,啊接着呢,那也有可能干嘛呢,来点加是不开始喷底,就请求过程中最后是不是有什么。这是我的响应的一个状态嘛,这个也没问题吧。啊,那好了,那比如说我点了一下它,我点它。有去取消请求吗?没有,虽然说我有提示,但真没有真正去取消是不是好?下面我们要去对请求进行取消操作,那我们得是不是研究一下access里面如何来取消请求吧?
08:15
那得找到啊,因为它比较靠下,就找到最后的位置就行。好,下面就要研究说它的请求的一个语法,它有两种写法,我们用它的第二种写法。啊,来看一下。啊,通过他这里来看呢,我们要去取消请求,是不是要去写一个配置,注意啊,看到get,看这个get这个先是传一个什么路径,第二个参数传的是个什么。配置配置我们是不是前面一直在在传一个传一个路径。后面第二个参数是什么配置,当然一定要用干什么。不一定,你来看我们这里面也可以做,也就是说按他的意思就是我们要想能够,比如说这个请求要想能够取消,那必须有一个什么配置呢,看看他的。
09:13
有什么特征?什么意思,取消了一个标记,一个令牌是吧,翻译过来就是用于取消了一个令牌的配置,你必须配置的,然他的值是什么类型,看一下。是不是这个R的对象,你们看到RL的这个配置,那是个特异项,很自然呢,而且是六这个故函数产生的对不对?呃,这个物理函数存到哪个位置了呢?看一下。是X函数对象上的一个属性,只是这个值是函数,而且是个勾的函数,是不是,那我如果不像它这么写,我这里怎么溜啊另一个。时间大写的什么,对不对?
10:07
能看到吧,能看到,而且传一个什么类型的参数。是不是函数类型的参数拿过来。也这里面是不是传个函数类型参数。没问题啊,而函数类型的参数,它也叫一个称谓叫什么。执行器是吧,它也是取了一个概念叫执行器,我们promise里面是不是也有执行器,那个执行器,我们那时候promise执行器是同步执行,异步执行同步,而且是在我六的内部执行的,对不对,它也是这样一个意思,它也是一样的。也就是说,你传入了函数,在这个六的内部就会什么立即执行。哎,说这个函数是个回流函数呗,是不,那我既然声明行参说明什么。
11:02
说明它调用的时候会给我什么传参数是不是。这一个啊,我一定要写这个名字吗。不一定,我甚至可以写个线还是吧,我懒得写方是吧,好说一下,我来跟大家直接说结果,说这个C是个什么类型,看好了大家能不能通过代码来看出来是什么类型。他这个里面是不是把这个C用外部的一个全局变量给存起来了,后面他怎么用的调,说明这个C什么类型函数。啊,这个C啊,C是干嘛呢,是用于。取消当前请求的函数,说白了,你做一个配置,你做了这个配置,六了一个对象传一个函数,我就会将那个用于取消我当前这个请求的。
12:00
函数教给你,你看你要不要,你不要那是你的事,你要你就可以成长,现在执行吗?你说我现在去执行吗?不能,你这执行我还没发呢,你不就给他取消掉了吗。对不对,现在不能执行,你现在干嘛。你说这个操作是一个什么意义呢?你说我前面外面得定一个变量因爱身份啥呀,啊,没干这种事啊。来这一个啊,这一个我相当于定行了一个全局变量,是不是我这个全局变量是不是将来传的就是这个用于取消请求的这个函数。啊,注意用于保存。取消请求的什么函数,我这一做是不是保存那个取消函数,为什么保存呢。
13:01
啊,为什么要保存起来,我保存起来以后还看得见吗?看不见呢,我是不是用于将来使用,用于后面啊,啊之后可能需要干嘛。取消当前什么请求,有可能吧?这有可能我才存起来嘛,是不是懂不懂。能懂吗?好。好了啊,那一旦你去啊,点击它来,我先写一个啊,先写一个写好它,那写好它,我这个手什么时候用呢。我们说我们的功能是什么,点那个按钮的时候,是不是得想办法去取消请求,那我应该干嘛去别个乐啊,搞这有啥用呢,是不是你懂吗?执行什么C函数。
14:02
来注意执行取消请求的什么呢函数。听懂不?他还说,嗯,那文档这个例子上没说啊,我直接告诉他结果这个CRL可以传一个用于。提示的message。能听懂吧,啊比如说脚。啊,强制取消请求可以吧,这是我提这个message,这个message啊,什么时候会用到呢?等会你就能看到啊。看是不是写错了吧,但是有一种可能性,我有没有可能没点过发送请求的按钮。那要没点的话,那我还有值吗?没有,那你说我这一点,那不就出问题了吗。你你在调用之前先得判断它是个函数啊。
15:02
是不是概念?里面我直接上来就点,那不就是更直接出问题,那是必然的,你看。我不点上面两个,就我点他是不是。是我错了,所以我得判断它是一个函数是不是,那我怎么做,这是等于一个什么方式,这个是不是比较严谨的吧,比较严谨的。可以吗?可以好来看一下。我有效果吗?有没有错吗?没有好,下面来看玩具。点他是不是啊,他他正在发请求啊。
16:01
发了吧,但是你说我有这么一点。有用吗?没有,而且你说我现在应该去执行那个函数吗?我是不是有可能是不是在请求完了以后才执行这个函数,那这样有必要吗?没必要,那也就是说这一个函数啊,这个变量不存了一个函数吗?是不是,我是不是在准备发请求前,是不是准备了一个,准备了一个值准备函数给他,是不是,但是我如果我的请求完成了呢?哎,我是不是还有一个回答函数可以写一下。是吧,还有什么还有的,也就说如果我的请求结束了,你说这个这个函数还需要存在吗?是不需要了,直接点message可以吧,啊,前面的写错了,我就看到啊,来就这一个是吧,能看到吧。
17:01
也就说白了,无论我请求成功了还是失败了,你说这个哥们还有存在的必要吗?他不存在,是说我要把他这一个给他过一个什么。是不是道理?你留着,留着这个函数没意义嘛,因为我都已经什么。完成了。不管成功还是失败,是不是你都没有机会取消了吧?是还是不是?这个是在准备发请求前,先把这个函数存起来是吧,如果函数成功了。或者失败了,不管成功失败都干嘛,都要把它指回到是不是。能理解吧?好,那我可以这样,你看我在里面写一个,写一个没有可取消的什么请求,就是看打印就知道了。
18:02
没问题吧,没问题,你比如说我一上来就点。什么意是没有可取消请求,那如果说你说我点了完,我点了以后,我半天不点取消是吧,他已经成功了,我再点。能听懂,不是不是也是有这个提示,呃,这个是不是我请求成功的提示,好,现在有这种情况。什么情况?我点一下立即点他呀,啊点一下再点什么意思。是不是取消了。对吧,注意啊,这个取消是谁导致的,是不是点按钮调用函数导致的,好,我们来看下打印输出。强制取消请求,你说是哪个谁的打印呢?来说一下。注意,我在里面。要把这个写写请求成功了,失败了,失败了。
19:01
是吧?请求一失败了啊,这个啊,这个啊,也在我们的下面写一个是吧?来请求二失败了对不对?好看一下你就懂了,来啊。刷新一下先。什么意思?也就是说,一旦我取消了,那整个流程进入了个流程。是不是失败的流程,那失败流程是不应该叫失败的回答函数。对对对对的。能不懂,而且我要告诉大家,现在这个A,这个A是一个特别的对象。你看一下啊,我点一下它再点。是个什么对象?是个L的L对象,也就是说这个L对象不是我们平常的那个L是什么类型?
20:03
是不是那个给我们提供类型叫L对象,而这里面有一个什么属性,Message它有带属性吗?没有为什么。因为它不是个error对象,我们说error对象是不是才真的有message和SPA?是吧,也就是说我们现在命的名字。叫A。但是一个L对象吗?是我们平常说的L类型的对象吗?不是,那有没有可能是呢?你比如说啊,我这里面写了个又加了个一,我写个错误路径,有人处理吗。有人处理这个请求啊,没有这个,我一发这个请求,这个路径没人处理啊,那肯定会是零四了,对不对,404是不会进入失败流程,那此时。这个L就真是个L吧。
21:03
能看到吧,现在这个现在打印的就是那个信息。理解吗?好,这个没问题,那我这个人做下面这一个是不类似的。能听懂吧,能听懂,那下面这个不跟上面一样的吗。是感觉吗?好,那也就是说我想去取消一个请求,还是可以做到的吧。各位可以,下面这个我就暂时不写啊来。
我来说两句