00:00
哈喽,大家好,这个小节呢,我们使用promise来读取一个文件内容。这个小节呢,咱们会用到诺基S里边的一些API,所以说大家需要安装一下诺基S这个啊环境。好了,那么我们来演示一下这个读取文件,咱们读取哪个呢?咱们准备读取的是resource文件夹下的这个,为学点MD想把这个文件里边内容读出来,在控制台做一个输出啊,这是一个需求。好了,下面我们开始写代码,第一步先引入这个FS的模块,Cost FS等于require FS第一步我们呢,先使用FS呢,它里边的方法先对它做一个啊最就是咱们原始的一个读取,就是不用promise。好了,开始调用方法。啊,读取文件。好,FS.read file第一个参数呢,是文件的路径,我们这写一个相对路径resources,下边为学点MD。
01:09
而第二个参数呢,是回调函数A。这个L呢,是那个错误对象啊,如果你要是出错,它是一个错误对象,如果失败的话,它是一个,那而data呢,它表示我们读取出来那个结果。啊,是一个八分。好,我们在这呢做一个判断,如果失败啊,则抛出错误if error,则through error。那如果呢,啊,没有出错。啊,则输出这个内容,好log,咱们来把data做一个输出保存。好了,咱们来运行一下这个脚本,在这来一个node。然后二杠乘个车。大家看一下这个结果呢,是一个八分,我们想看看里边内容,可以调用一下这个to string方法保存。
02:04
来,再来看一下,走起。看这为学天下事有难易乎啊,为之则难者易矣,不为则易者亦难矣。这是我们在上初中时学的第一篇文言文。啊,学好了,呃,这个完了之后呢,下边我们再使用promise封装啊使用。这个promise呢,封装把代码呢,咱们注释一下,下边呢,咱们使用promise cost p等于一个new promise。它呢,接受一个函数类型的参数。然后有两个行参resolve和reject,那在里边呢,咱们说它封装一个异步的操作。而读取文件呢,就是一个异步操作,好FS read file,第一个参数resources,下边为学点MD,好,那下边第二个呢是回调函数。
03:04
还是一样判断,如果失败if error失败以后呢,我们就不能像上边那样子去抛出错误了啊,我们要改变这个promise对象,它的一个状态叫reject,然后error。通过调用,我们可以改变它的一个状态为失败。并且呢,还可以设置它失败的值是这个错误对象。然后咱们还可以呢,哎,就是写一下啊,没有失败情况,就是如果成功,哎,如果成功的话呢,咱就直接resolve来个data。调函数可以修改这个promise对象状态为成功。通过往里边传参,可以设置它成功的值。好,那么现在的话,通过对这个异步任务的一个封装,我们接下来呢,就可以通过Z方法来处理成功和失败的一个结果。
04:03
p.Z。两个回调函数。行参这块第一个呢,咱们把它叫value啊,第二个呢,咱们把它叫做reason,当然了这些都是潜规则,你不必呢,你也你也可以不必说必须要写value和reason,就是大家呢,一般写的时候都这么写,所以说呢啊,我建议大家在写的时候也按照这个潜规则去做。好好,那么成功的话,我们可以使用console log来打印一下,这样打印一下这个value。保存看看结果啊,然后摁上敲回车。大家看到这是一个八分啊,我们可以通过to string的方式来对它做一个转换,诶走。看这来了结果就来了啊,那如果失败的话怎么办呢?如果失败的话呢,我们就来一个读取失败OK,保存。然后怎么来演示失败呢?简单我们可以在后面加一个这个字母,这样的话文件就找不到,文件找不到就会失败,好一起来看一下啊,交会车看这读取失败。
05:08
好,那这样的话呢,我们就完成了一个promise的啊,这样一个功能读取文件,同学可能会有一个疑惑,就是说,诶,我们明明可以使用上边这几行代码就可以完成的事情,为什么还要使用promise来费这么大劲呢?啊,这是因为单个任务呢,看不出来哈,要是有多个义务任务的话,你想一想,你的代码就要不断的向里边缩进。但是我们使用promise就不会,我们可以呢,就是能够。不不会让这个缩进呢,持续的向内,就是不断往里边缩进,它只会有一个就是一个界限,到这儿以后,它不会继续往里边缩进。是这样的一个情况啊,好了,那么这个小节呢,我们关于promise呢,读取就使用promise封装来读取文件,这个案例我们就先到这儿。
我来说两句