00:00
Hello,大家好,那这一个小题呢,我们来对think和wa做一个结合的实践。那么在看完I thinkwait之后呢,同学可能会说,这玩意儿感觉也没啥特殊的地方呢啊,那是因为他们两个没有结合,一旦结合之后呢,就会产生化学反应啊,样子就会变得非常非常的有意思啊,非常非常简单。好了,那么呃,这里的话,我们以一个案例啊来作为支撑去讲解这个事情,就是我们要读取resource这个文件夹下的三个文件,1.html 2.html 3.html的文件内容。读取,读取完之后最终的拼接做一个输出啊,咱们想做一个这样的事儿好了,呃,如果使用纯这个回调函数的方式去做的话呢,咱们可以给他演示一下FS read file。然后呢,读取点杠,Resource,下边1.html,然后error data。
01:05
走起,不然我们做一个判断,如果说有问题,我们就抛出错误,如果没有问题的话,我们就拿到了1.html文件的内容,拿到之后呢,咱们需要拿第二个文件内容往里边放啊,这块来一个二。啊,再往里边放来一个三搞定,那么写完之后呢,我们想把这三个文件内容拼在一起啊,就出问题了,为啥呢?你看data data data3个data,他们三个名字一样的,这个时候是会产生覆盖情况的啊,所以说这里为了不让他们覆盖呢,咱们需要把名字稍作处理。然后最终呢,我们来一个console log打印data,一加DATA2加DATA3搞定,然后咱们打开控制台去做一个输出NODE3杠全回车可以看一下啊,此时咱们把三个文件内容就已经输出出来了,没有问题,好,那下边的话我们来换一下。
02:03
哎,这是使用回调函数的方式来实现,现在呢,咱们就用一下这个asy c与wa做一个实现。把它先注掉。呃,首先的话,咱们肯定要先写一个I think函数。啊,然后写上名字,咱们来一个命。下边这个位置呢,咱们main调用一下,好在里边呢,我们做事情,诶读取第一个文件的内容,然后let这个。Data e等于a wait,咱说了awa后边呢,应该放的是一个promise对象。啊,并且可以获取对象成功的结果。那这里咱们怎么样去创建这个promise对象呢?哎,咱有方法就可以把。拿过来。在YouTube当中呢,有一个。方法它是可以呢,将我们的这些API呢,转换成一个。
03:05
Promise形态的函数,哎,所以说可以借助它来一个promise five fs.read file。好,那接下来的话呢,看好了直接把它拿过来,里边来一个点杠,Resource,下边1.html。这样一来,我就拿到了文件一的内容。再来二。文件二内容,还有文件三内容。我们就都拿到了,拿到之后呢,最终console log打印DATA1 data2,然后三。完工可以看看结果,摁上敲回车。没有问题,而且在这种情况下,如果说我们出错,我们不用每一层去做一幅else的判断,如果出错的话,我们只需要用try catch。给他一包裹就完事了。
04:02
所以在错误处理这方面的话。用think和awa要比原来的。纯回到函数要方便的多啊,要方便的多,然后在这看log打印一下E啊,咱可以看一下,比方说我这出错了没有这个文件摁上敲回车。这个结果就是E它的内容啊,我们可以打印一下其中一个属性,比如说code。然后呢,摁上敲回车搞定。好了,这是当前呢,我们用I thinkwa做了一个结合,做了一个这样的实践啊,你会发现在I thinkwa的使用过程当中,我们是看不到回调函数的。啊,在promise里边,Then方法或者catch方法里边,你可以看到有回调函数,但是呢,在thinkwait结合这一块的话,是看不到回调函数的,非常非常的简洁,就跟我们写同步的函数调用那种形式差不多,就是在前边多了一个a wait,但是呢,它内部的执行却是异步的。
05:07
好了,那这个案例我们就先到这儿。
我来说两句