00:00
好,那么接着呢,我们来去解决关于异步执行的这个问题,Promise呢,本来就是为了异步操作而出现了,结果呢,现在却处理不了异步的代码啊,这就很崩溃,那怎么办呢?其实也很简单,我们无非呢,就是在调用点Z时呢,加一个else的判断,那这个else的作用呢,实际上也是非常简单的,就是我当前的状态不是成功也不是失败,那就一定是喷Ding这个等待状态,那么在等待状态时我需要做什么呢?其实也很简单,因为成功之后呢,会调用成功的方法,而失败之后会调用失败的方法,但是现在呢,是等待状态,那么我们最终在成功状态和失败状态时要调用的方法呢,已经。
01:01
通过点Z的success call back和call back传进来了,所以呢,其实也很简单,我们就需要在点Z的这个过程中,如果判断你当前时等待状态,那么我就需要把你传入的这两个方法存起来,存起来做什么呢?就是等待你异步结束之后,我再去看你的状态,然后如果你的状态更改了,那么我是有方法能够去执行的就可以了。所以呢,我们怎么去存当前的这两个方法呢?也是非常简单,那之前我们存数据的时候呢,用的是啊这个属性的方式呢,现在呢也是一样,我们这里呢,就使用这个suc的方式来,就先等于一个安利范,以及FAI的方式呢,也起一个名字就等于安利范,那么此时当你去等待状态的时候呢,我就可以使用这个suc,然后呢,等于。
02:01
对,这个success call back这个函数就直接给你,那么同时呢,失败的这个函数也是一样,直接给它去复制拷白好,那么存起来之后我们什么时候去调用呢?那就是你的状态更改之后再去调用了,那状态更改之后在哪呢?哎,就回到我们之前的这个状态更改的这个代码当中,那如果是成功的,那我们就去做一个判断,this.suc如果是有的,那么我就去调用这个z.suc淘back,那当然了,传值也是一样的,传在Z当中呢,你是把这个this.very good传进去的,那么在这里的调用呢,也是一样啊,抱歉,这里呢,应该是this.suz啊,那么这里呢,我们还是一样的把这个z.value给它传进去,那么在失败的状态。
03:01
那也是一样啊,这个就不用说了,就是this似点FFAI,那如果有的话呢,那同样我们是this似点FA好括号里面,那同样的把这个瑞三给它穿进去,那这样的异步呢,诶我们就能够进行一个处理了,那么再回过头来,我们来看看是不是这个成功在两秒钟之后能够打印出来,那继续去执行,好,我们等待两秒钟,那现在呢,成功就已经出来了,那么此时呢,我们的promise就可以去处理我们的异步的代码了,好,那么接着呢,我们来去做一个小实验,好我们呢,也不再去使用这个set out的方式来去处理异步了,因为我们是一个note GS的项目啊,所以说呢,我们这里呢,就嗯使用一个note的异步方式来去做,当然如果你说诶,那我是在我的浏览器中是怎么用呢?啊,其实也简单,你就把这个导出和导入的这个方式呢去。
04:01
换一下就把它呢删掉,然后呢,通过这个script的方式去引入就可以了,因为最终呢,我们这里也是通过这个require方式,Notes的方式去引入的,那览器的方式呢,也一样,用script的代码的方式啊,标签里面加一个src去引入这个文件,那你就可以直接去调用这个my promise去就可以了,那这里呢,我们就不再去做演示了,那我们去举一个简单的例子,接着我们去新建一个文件啊,比如说呢,我们就叫FSDRJS,那它呢也一样,也是使用这个promise的这个方式的,那所以呢,我们就需要cost,然后呢,把我们的my promise呢给它引入进来,等于IQ好call里面去引入我们当前路径的my promise,好等一下这个应该是写错了。
05:01
OK,然后下面的my promise,好,那引入进来之后呢,其实和用普通的promise呢,没有太大的区别,那这里我们就需要去new这个my promise,就是我们自己定义的这个promise,那同样呢,给它传入一个函数,函数里面呢有两个参数,一个是成功的,叫result,还有一个呢,就是reject啊,这是相对应的两个成功和失败的方法,那么下面呢,我们就开始去执行我们的一步的代码了,那执行一步的话呢,其实也一样,我们就去读一个文件就可以,那这里呢,我们就使用request去引入我们的FS,然后呢,FS的file啊,就是我们的一个异步方法,那这个异步方法呢,是可以读取我们文件的内容的,比如呢,我要去读取当前的a.TT里面的内容,那使用的呢,就是这个。
06:01
U的编码方式,那如果结果出来之后呢,就会有一个归量函数,那一样的是一个function,那这里呢是error和bit,好,那如果是成功的话呢,那就简单了,那就if做一个判断压,如果里面有值,那我们就失败,就调用reject好把我们的ER给它传进去,那else呢就是成功的,那成功的话呢,我们就调用这个result,然后呢,把我们的这个date,也就是读取来的内容呢给它返回,那么这样的一个promise呢,就已经是成功的了,好,Resolve写的不对,OK,保存一下好,那么现在我们已经把这个promise封装好之后呢,我们扭完之后拿到这个结果,这里呢,我们还是使用late p等于好,那怎么去使用呢?也是非常简单的,那就是P点。
07:01
Z的方式来去拿到我们这个结果,那么现在呢,也是非常简单啊,就直接看看你有没有成功就可以了,来一个date,那其实也很显然就是不成功的,好,我们再来一个err,我们看看它的失败,失败到哪里啊,实际上就是我们还没有创建这个a.T这个文件,那当然我们还是要去试一下,看看是不是真的有这个报错,好,那么很显然这个报送就已经出来了,叫no such by or dictional,那么紧接呢,我们就去创建这样的一个文件,比如叫a.TAT对吧,那我们这里呢,就写一个心灵老师保存一下,好,紧接着呢,我们在我们的FS中来去试了一下,那么现在呢,我们就能够看到西灵老师呢,就打印出来了,那这个结果呢,实际上就是我们通过使用自己封装的promise来去做了一个异步的请求,那请求成功之后呢,我们调用的是reject,那请求呃。
08:01
呃,请求失败之后呢,我们调用的是reject,那请求成功的,那我们调用的是result OK,那这些呢,其实就是我们封装这个promise之后呢,一个使用方式,那当然你也可以通过这个al的方式呢,去通过script的方式去引入啊,那这里呢,我就不再去更改了,大家呢,可以去自行的进行测试和修改。
我来说两句