这篇博客没有啥硬核知识,讲的是我遇到问题然后排错的过程,大家可以当故事看看
事情的起因是请求响应的对象打印出来竟然是undefined,但是network里却可以正常看到响应体
于是我把这个问题扔给了我队友,他改了我两处代码,成功地把问题解决了,响应对象可以正常打印了
他成功了,我疑惑了
为什么用 res 接住请求的返回值,再把 res 作为函数的返回值返回就能成功?
为什么在响应拦截器里把 res 改成 res.data 就能成功?
对此,我队友也道不出个所以然来
于是,我开始了排错之旅
首先,我把响应拦截器里的 res.data 改回了 res,发现也可以正常打印响应对象
说明问题不在响应拦截器这里
那唯一的区别就在请求函数这里了
我队友修改之后的代码是用res来接了这个请求返回的对象,再把res作为返回值
而我的是直接写成下面这样
因为我之前了解过,箭头函数只有一条语句的时候,那条语句的结果会自动作为返回值被返回
所以我觉得这两段代码效果是一样的
但后来问了chatGPT,发现我不完全正确,以下是 chatGPT 的话
所以,如果希望箭头函数在只有一条语句的时候自动返回结果,就不能加{}
我的错误代码是加了{}的,所以没有返回值
把花括号去掉就好了
到这里,所有的问题都解决了,收获一个关于箭头函数的知识点
我说黑马的代码怎么就有返回值,我明明和它写的一样,现在才发现,人家的没有{},我的有{}
好家伙,抄代码都抄错了,不愧是我
这一套排错,真的感觉很有趣,从疑惑到顿悟的感觉真好
虽然bug出现的感觉很不好,排错的时候也并不觉得有趣或好玩,但是问题解决之后,再回忆起整个过程,却觉得很有意思,也很有成就感