同事是不是对 Promise 有什么误解

2023-04-27 00:14:19 +08:00
 suyuyu

吃了个盖伦 Q 沉默了

3407 次点击
所在节点    前端开发
27 条回复
throns
2023-04-27 01:05:39 +08:00
他应该是对 axios 有误解,不知道返回值是一个 Promise
autoxbc
2023-04-27 03:18:08 +08:00
我自己践行一种异步规范,禁止使用 then(),可以避免很多问题
fairless
2023-04-27 07:28:54 +08:00
Promise 这样用有啥问题吗?直接 return Promise.resolve(res.data.data) 显得更高级一些?
optional
2023-04-27 08:21:51 +08:00
hah ,除了这个
statuss -> statuses
select -> selected
arfaWong
2023-04-27 08:32:21 +08:00
哈哈,返回的不也和预想的一样吗
cmdOptionKana
2023-04-27 08:46:47 +08:00
我也是这样写的,能不能说说正确做法,我想学习
suyuyu
2023-04-27 09:10:57 +08:00
@fairless 拦截器不是一劳永逸吗,他每一个接口都这样写。还有 qs...
@optional 看上去想了很长时间的变量名
@autoxbc 他调用也是用的 then
toesbieya
2023-04-27 09:17:05 +08:00
问题太多了,额外包一层 Promise 、url 参数还自己用 qs 转、同名键值不简写、axios 异常不用统一封装的非要自己处理,至于参数命名,如果接口就是这样的只能说后端也是凤雏
hu1e
2023-04-27 09:17:34 +08:00
单看 Promise 的使用没啥毛病吧
cxe2v
2023-04-27 09:20:23 +08:00
@cmdOptionKana 用拦截器处理,然后直接 return axios.get()就行
cmdOptionKana
2023-04-27 09:26:43 +08:00
@cxe2v 谢谢!我才直到 axios 有拦截器
superedlimited
2023-04-27 09:33:57 +08:00
什么拦截器。。。你们在说什么呀????

难道不是 export async function, return await axios.get ????
suyuyu
2023-04-27 09:40:27 +08:00
@hu1e 我说错了😅 对 axios 的无解
BugCry
2023-04-27 09:57:52 +08:00
问题可真不少,比如 axios 本来就返回的 Promise ,就硬 new ,能想得到用 JSON.stringify 都算好了,至少没有手撕 json 字符串。
不过楼上几位说没啥毛病的,就直接给人干沉默了
xingyuc
2023-04-27 10:03:13 +08:00
写注释就是好人
ChefIsAwesome
2023-04-27 10:03:19 +08:00
这破代码还有人看不出来毛病的。
wunonglin
2023-04-27 10:14:32 +08:00
1 、参数直接用 URLSearchParams 就行了,还用 qs ?就算不用 URLSearchParams ,axios 自己也能处理简单对象。
2 、不需要 new 一个 promise ,axios 返回的就是,想返回不同的返回值就写多一个 then 就行了。
weixiangzhe
2023-04-27 10:39:21 +08:00
axios 的 interceptors 没有配置吧,看着是挺累的
lemonnTr
2023-04-27 10:49:37 +08:00
你就说能不能用吧
suyuyu
2023-04-27 10:57:27 +08:00
@weixiangzhe 有拦截器但是没用,估计是复制来的。
@lemonnTr 能用 !-_-

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/935771

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX