首先感叹下第一篇文章
曾经写过日记,QQ空间写过日志,可后来再写没有写过,今天突然要写文章,内心还有有些激动的,而且是篇技术类的,更加的激动,或许对于大佬来说,这篇文章没有任何意义,可能对于三个小时前的我,可能是救命的稻草。进入正题
这个坑简直是对自己的侮辱
踩了这个坑,才知道自己的基础有多么的不扎实。首先看下问题
封装好的请求中,then突然拿不到请求错误的回调,catch中拿到的数据不是我想要的。
来看看是怎么挖坑和填坑的
在Taro 1.3.9版本中(因为很早就尝试过一个小demo,开项目前忘了看最新版本,忘了更新),封装了请求(完全是抄的,附上链接),在封装好之后,也加入了自己项目的逻辑,好,目前为止一切正常,可是就在昨天,突发奇想,更新下版本吧,说干就干,升级到了Taro 2.1.5,升级完之后,目测也没问题,开开心心的下班走了。
今天上班,突然同事问,登录失败怎么没有提示信息了,嗯?什么情况,心头一紧,自己测试一下,居然真的没有提示信息了,看netWork,有数据啊,没问题啊。既然数据也没问题,排查吧,那肯定是代码的问题了
netWork中都有数据,那证明请求成功了,那既然成功了,应该都走这个回调,打印下数据吧。
等等,为什么没有打印,为什么没有数据。
不应该啊,一直都是好好的,既然then中没有数据,那我去catch里面拿好吧,顶多就是在处理一次,也没关系,心头一松,开开心心的在后面写
开开心心的去控制台看打印,等等,这是什么鬼
心头又一紧,这什么情况,这是什么数据,接口返回的数据呢?
突然蒙了,这该怎么办,对于一个小白来说,百度啊,最有效
百度,百度,百度,为什么没有相同的情况?这该怎么办,这个问题不解决,项目就崩了。内心焦急
继续百度,群里问大佬,可是大佬都很忙,没有大佬回复我。过了两个多小时,突然有大佬回复我,他的项目中没有遇到这种情况,哇,救命稻草,立马加大佬好友,私聊询问,描述问题,听大佬解答,尝试解决。
跟大佬墨迹了将近一个小时,我突然发现大佬理解错了我的意思(怪我描述的不清楚),进行了一番解释后,大佬突然问我
嗯?body我看了啊,没东西啊,给大佬发了一张截图,以此证明的确没东西
大佬突然说(当然,我百度了ReadableStream,可是没有细看,也没看太懂,但是看到了数据需要.json()一下)
然后我就
console.log(res.body.json())
并且厚颜无耻的告诉大佬,报错了
大佬很有耐心的告诉我
console.log(res.json())
我怀着忐忑的心情看向了控制台,WTF,数据出来了,当时内心那个激动啊,有种起死回生的感觉(感谢大佬的指点与耐心)。
我想,到这里,这篇文章就该结束了。
可是我还是不知道为什么升级了版本就报错了,而且请求是成功的,应该走到then中,为什么到了catch中,这样的迷惑,有时间在继续了解吧,赶项目要紧。基础打不好,问题少不了,有时间还是要多恶补恶补基础啊。