00:00
我们来看一下,咱们上节课呢,将这个呢,最终分装的一个这样的promise对象,从在这里面呢,我就能实现它呢,按照我们之前设定的逻辑,走了一个套路,走完之后呢,最后呢,方下的返回值呢,就能拿到我想要的没有过期的这个N是不是好在这呢,我们想一想,我们最后啊,就是要想办法通过组合这些方法,然后每次呢,只要我去请求,只要我想要得到斯托克啊,它是不是都得走一个这样的完整的逻辑,是不是都得这走一一个这样的完整逻辑那么好,那么也就是说,也就意味着啊,到时候我们只要哪个地方使用这个接口地方,我就是要需要S斯托N,需要斯托N的话呢,我就得再来一遍这样的逻辑是不是那么好,那么我们就应该把它给。是不是也封装一下,今后呢,方便我走这个逻辑,是不是复用啊,方便我去复用,所以说呢,我把它给封装一下啊,因为到时候呢,只要发请求我就得走一遍这样的逻辑,所以说呢,叫他封装成一个方法,我好去拿到我的N啊,好分装一个方法,我们看一下叫做什么方法呢S啊。
01:16
这个方法呢,就是为了我最终呢,是不是我们刚刚写的是不是return出去就可以了,出去就可以了,这里面他会做什么事呢。它返回值是个promise对象啊,它这里帮我标出来了,然后这里面是用来获取啊,没有过期的,是不是这个函数的返回值就是个这样东东。获取一个没有过期的索,它返回值呢,是个pro c项,是不是是一个pro c项,这里面的值呢,其实就是一个。N啊,这里面呢,我们所返回值是一个promise对象,然后呢,值是一个包装着promise对象的N,是不是包promise项的N,好,就是这样一个方法,对不对,那我们呢去,因为这里面的逻辑呢,它稍微麻烦一点啊,而且呢,会有很多点的,这样呢不方便我们今后去写,因为呢,这里面呢,实际上我们利用promise就想去解决这个回调地域问题,是不是,那这样呢,又无形之中呢,又陷入了这个回调的窘境,是不是,所以说呢,我们要引入。
02:24
A think函数是不是解决啊,比如说think函数解决看下怎么解决啊,我们呢,在这里面是不是回调函数,所有的函数前面只要加一个a think关接字呢,它就是一个think函数,这加个think关键字啊,然后所以说这里呢,我就可以去定一个变量,比如说定一个RS等于away一下,这个promise对象的返回值是不是away一下,并且呢,大家注意咱们这个fet son是不是我实际对象的方法,那么我实际对象上会有这个W吗?没有W是我们之前去创建的,是不是,所以说我们这里怎么去拿到我的想要的方法和属性,通过。
03:05
怎样拿到?难道我去六一个V叉V叉参数吗?不会吧,怎么去做。是不是通过自己思维拿到?想一想这里面能不能通过this拿到这个read access方法,可不可以我们这个实例对象的方法,它的方法里面的this指向谁?指向实际对象的身,因为他通过实际对象调用是不是那么好,这个自子是不是实际对象,我是不是就能通过这个实际对象拿到这些方法的属性啊,就能拿到了,所以说这里面不用W啊,都用这次去写。我先把这个改完啊,这是要改的。改完之后呢,再来再来,还有哪里要改呢?首先我这里是不是通过wait就可以去做了,所以说我这个点对函数就不再需要了,那这里面是不是发送请求获取这个N,然后这里是不是保存下来啊,保存下来,保存下来呢,我记得也要加个,是不是要等待它保存完毕啊,等到呢,我保存完毕之后呢,最终呢,我要将就说没有。
04:20
将请求回来的这个SNKN是不是要返回出去啊,是是通过这个方法将它返回出去啊,这样呢来看啊,这样跟我们之前的对比一下,我们之前是不是用了很多回跳函数是嵌套啊,啊这样的话呢,就是个同步的方式,是不是,那这样呢,更加方便我们去观察,更加方便我们去维护这个代码,这里面的回调函数嵌套太多了,所以说不太合适,那下面呢,他是不是跟我上面的逻辑是。一样的,所以说呢,我可以全部给替换掉就可以了,是不是替换掉同样的我这个函数也改成。
05:01
A,函数是不是改成函数好,那在这里面呢,我是不是都调用so方法好调用so方法,然后呢,去返回我这个想要的这个值是不是好在这里面呢?我们来再讲一个小小的一个优化啊,我们做什么事呢?来看啊,我们做你做一件这样的事。来看一下我做个这样的事,他会怎么做呢?我在这里呢,不去方法了,我在这里return一个promise点好,所有这些的地方呢,我都这样做好,这样做有什么用。这样做有什么用?它呢,是不是会立即返回一个东西,返回一个promise,像这个promise项的状态为成构的状态,并且里面是不是有这个数据啊好,这个return数为了怎么去使用。
06:03
为什么要一个像?为了方便我。接下来是不是继续和加点内了,是不是我接下来能不能继续加点na,能因为我前面是不是都返回那个promise项,所以说我下面是不是继续点点下去啊好,而且他们状态是不是都是成功的,所以说我就只考虑成功的回调好成功回调我做些什么事呢?来看一下啊,我呢将这个相关的相关的内容。挂载到this上是谁?实际对象是不是,哎,这里面呢,因为我这些函数都是箭头函数,箭头函数的意思。是它最外层的函数是不是?好它这头函数这是接头函数是不是,比如它最外层数是这个镜头函数啊,好这个镜头函数的this子又是fast son的this是不是?所以最终呢,他们this都是我的实际对象,是不是最终都是我的实际对象啊,因为呢,我记得函数没有自己的this,它要一层层找,是不是最终呢,就找到我这实际对象这个方法,所以最终这都实际对象,那我这里呢,就将this点。
07:17
Token等于它最终传递过来的点token ACC。好,这候呢,我自己上就会有些东西了,PI看in等于re.express in,好,这时候我S上是不是就有这两个东洞了,就有这两东呢?好,有这两个东洞干嘛呢?好在这里呢,我还要改装一下啊,咱们的最终这个从s.read的这个方法之后啊,它是不是最终会来到我这个点内啊,因为这前面都去return promise,所以最终会来到这个点呢?比如说最终这个返回值呢,就是看我最终这个点面的返回值是不是好,如果我这样再去return一个promise.resolve这个R呢?
08:12
好,这样呢,我又是返回一个,是不是包装了一个,包装了一层promise对象。啊,此对象为成功的状态,是不是此对象为成功的状态好,这样做有什么用呢?好,这样做来看啊,是不是我这个点内,也就是说最终这些所有这些方法的返回值,是不是就是最后这个返回值啊,就是最后这个返回值,所以说你如果想继续点灯,是不是还能点的好,如果我不继续点灯。我去做个这样的事,我将这个方面像给去掉,之前是不是有个方位像了,哎,我看是不是去错了,我把这个方最下给去掉,再这样做呢。
09:15
它会,它会,最终的返回值又是什么呢?看啊,咱们呢,是不是c.read这个方法,它最终是不是会去调用,然后成功的时候是不是执行这些函数啊好,它会一直执行完,最终呢,是不是会来到这里,最终会来到这里,最后来这里它是不是返回一个状态为成功的pro对象,好注意啊,这个特呢,仅仅是我这些东西的返回值,是不是其实这些东西返回值,那我这个是指定的是Fla SN这个函数的返回值是不是好指定返回值,它的返回值多少呢?是不是就是最终的这个。对象啊,所以这样写的话呢,我会发现我是不是不用去包装一层promise对象啊,我只要包,我只要返回一个这样的对象,是不是最终我这个函数的回值就是一个pro项,就是个pro项,所以这个呢是其实你可以看做啊是这个最终这个this点瑞的方法,最终的返回值,这里呢是最终的返回值,然后这个特呢是我这个啊函数的。
10:22
返回值啊,这是他们的返回值有些不一样,所以说这个它一定要加,不加的话呢,我这个函数是没有返回值啊,没有返回值好,这里呢是,所以这注意我们最终来这里是不是好回去这样的好,这是第一个啊,第二个呢,我是不是在这里是给this上画出这两个东东好,所以说呢,我一上来的时候,我就会做这样的处理了。我判断自己慈善首先啊,因为自慈善它不一定有第一次的时候是没有走这里的,所以说它没有这个东西,所以说判断它有没有这两个呢,如果有的话呢,说明是不是之前我保存过啊,说明我之前保存过,所以说虽然有我之前保存过,但是呢它呢不一定是有效的,是不是可能也会过期,所以说我在这里呢,还得判断它的是否过期,是不是传输this进去啊传出this好,如果进入到这说明什么呢?说明。
11:22
说明之前保存过。这个奥斯托N,并且这个奥斯N是有效的啊,并且它是有效的,那接下来我们应该怎么做呢。它都有效了,我就直接去是不是可以直接使用啊,直接可以使用啊,就可以不用走下面这层复杂逻辑了,只要我自己上下次缓存了,我就不用走这么麻烦了啊,所以说我就可以一个比如说大写promise.solve因为我也要保证这个promise项啊,所以说我返回一个东西,是不是那简单一点,是不是直接把这个this返回出去,那咱们this上的方法实在是太多了,数据太多了,是不是他压根用不了这么多东西,所以说呢,我就自己写一个对象,它的对象属性呢,就两个东西,一个是SN,它就是this点上上身上的。
12:17
是不是?好,除了这个属性呢,还有一个属性叫做过期时间,是不是这过期时间呢,也是我this上的过期时间啊,就这样做啊,这一步呢,说白了就是为了去减少我下面的这些缓复的操作,而去做了一个小小的缓存,做的好,那但是呢,你光有这个this保存在自上呢还不够,还是要通过他们的判断,因为说白了啊,在对象上保存的任何属性都是不安全的,它很容易被修改,一旦它被修改的话呢,我还是要走下面的逻辑,去想办法把它给重新请求回来,是不是还是要这样做的啊,所说呢,我们会有这样两套,上面一层呢,相当于是做一个优化措施啊,相当于说小小的一个优化啊,那这个呢,就是我们这个Fla的整个方法,这个方法那里面呢,用了下这个函数,将我们之前的这个反复的嵌套的逻辑呢,把它给整的更明白一点啊,然后最后呢,他们都会来点内函数,从而呢,往这子上挂载我想要的东西。
13:20
啊,最终呢,将这个没有问题的token是不是返回出去啊,返回出去好,那到这呢,就是我们整个的这个Fla token这个方法的这个定义呢,啊,那大家呢,那我们先停一下。
我来说两句