V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
suyuyu
V2EX  ›  前端开发

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

  •  
  •   suyuyu · 363 天前 · 3102 次点击
    这是一个创建于 363 天前的主题,其中的信息可能已经有所发展或是发生改变。

    吃了个盖伦 Q 沉默了

    p9MBINd.jpg

    第 1 条附言  ·  362 天前
    应该是对 axios 的误解 😊
    27 条回复    2023-05-05 14:28:00 +08:00
    throns
        1
    throns  
       363 天前 via Android
    他应该是对 axios 有误解,不知道返回值是一个 Promise
    autoxbc
        2
    autoxbc  
       363 天前
    我自己践行一种异步规范,禁止使用 then(),可以避免很多问题
    fairless
        3
    fairless  
       362 天前   ❤️ 1
    Promise 这样用有啥问题吗?直接 return Promise.resolve(res.data.data) 显得更高级一些?
    optional
        4
    optional  
       362 天前
    hah ,除了这个
    statuss -> statuses
    select -> selected
    arfaWong
        5
    arfaWong  
       362 天前
    哈哈,返回的不也和预想的一样吗
    cmdOptionKana
        6
    cmdOptionKana  
       362 天前
    我也是这样写的,能不能说说正确做法,我想学习
    suyuyu
        7
    suyuyu  
    OP
       362 天前
    @fairless 拦截器不是一劳永逸吗,他每一个接口都这样写。还有 qs...
    @optional 看上去想了很长时间的变量名
    @autoxbc 他调用也是用的 then
    toesbieya
        8
    toesbieya  
       362 天前   ❤️ 1
    问题太多了,额外包一层 Promise 、url 参数还自己用 qs 转、同名键值不简写、axios 异常不用统一封装的非要自己处理,至于参数命名,如果接口就是这样的只能说后端也是凤雏
    hu1e
        9
    hu1e  
       362 天前
    单看 Promise 的使用没啥毛病吧
    cxe2v
        10
    cxe2v  
       362 天前
    @cmdOptionKana 用拦截器处理,然后直接 return axios.get()就行
    cmdOptionKana
        11
    cmdOptionKana  
       362 天前
    @cxe2v 谢谢!我才直到 axios 有拦截器
    superedlimited
        12
    superedlimited  
       362 天前
    什么拦截器。。。你们在说什么呀????

    难道不是 export async function, return await axios.get ????
    suyuyu
        13
    suyuyu  
    OP
       362 天前
    @hu1e 我说错了😅 对 axios 的无解
    BugCry
        14
    BugCry  
       362 天前 via Android   ❤️ 2
    问题可真不少,比如 axios 本来就返回的 Promise ,就硬 new ,能想得到用 JSON.stringify 都算好了,至少没有手撕 json 字符串。
    不过楼上几位说没啥毛病的,就直接给人干沉默了
    xingyuc
        15
    xingyuc  
       362 天前
    写注释就是好人
    ChefIsAwesome
        16
    ChefIsAwesome  
       362 天前 via Android   ❤️ 3
    这破代码还有人看不出来毛病的。
    wunonglin
        17
    wunonglin  
       362 天前   ❤️ 1
    1 、参数直接用 URLSearchParams 就行了,还用 qs ?就算不用 URLSearchParams ,axios 自己也能处理简单对象。
    2 、不需要 new 一个 promise ,axios 返回的就是,想返回不同的返回值就写多一个 then 就行了。
    weixiangzhe
        18
    weixiangzhe  
       362 天前
    axios 的 interceptors 没有配置吧,看着是挺累的
    lemonnTr
        19
    lemonnTr  
       362 天前
    你就说能不能用吧
    suyuyu
        20
    suyuyu  
    OP
       362 天前
    @weixiangzhe 有拦截器但是没用,估计是复制来的。
    @lemonnTr 能用 !-_-
    maclanelf134
        21
    maclanelf134  
       362 天前
    哎,现在代码看多了都习惯了, 我同意楼上的说法,会写注释就是好人! 自己知道怎么写就得了!反正都能实现同样效果,人家就愿意这么写,回怼你一句这么写碍你 p 事你能说啥! 会写注释真是好人啊..........
    fairless
        22
    fairless  
       362 天前
    @suyuyu 所以用不用拦截器与你的标题有什么关系?跟 promise 有什么关系?
    xhcarlin
        23
    xhcarlin  
       362 天前
    要我的话,能用就行,别碰人家的代码
    suyuyu
        24
    suyuyu  
    OP
       354 天前
    @xhcarlin 肯定不碰能跑就行,看着有点别扭吐槽一下👻
    lete
        25
    lete  
       354 天前 via Android
    说有问题吧,它也能正常跑,说没问题吧,它还挺不好维护的

    emmm ,又不是不能用

    还有这后端也是个人才居然这样返回数据天才哈哈哈哈
    houchangxiaowang
        26
    houchangxiaowang  
       354 天前
    OP 来一段你觉得能接受的代码看看? talk is cheap. show me code
    suyuyu
        27
    suyuyu  
    OP
       354 天前
    @houchangxiaowang 下次不敢了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1023 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 22:09 · PVG 06:09 · LAX 15:09 · JFK 18:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.