关于 Javascript Promise/A+规范,这个规范似乎落后了? Javascript 有没有对 promise 的官方规范? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
ericgui
V2EX    程序员

关于 Javascript Promise/A+规范,这个规范似乎落后了? Javascript 有没有对 promise 的官方规范?

  •  
  •   ericgui 2021 年 11 月 29 日 2126 次点击
    这是一个创建于 1540 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在研究怎么手写一个 Promise 的实现,看的是尚硅谷李超的那个视频,讲的其实挺好的,而且似乎李超的代码是逐步模拟 ES6 的官方 Promise 的行为,写一个自己的。收获很多,很感谢。

    但我看网上自己手写 promise 的博客,似乎更多的是遵循 Promise/A+,所以跟着李超视频写出来的代码通过不了 Promise/A+的测试,一共 872 个测试用例,只能通过十几个。

    而且 Promise/A+里没有 Promise.all 等 api ,并且 Promise/A+里还有 Promise.deferred 这个 api ,但似乎 es6 的 promise 已经把这个 api 去掉了

    总之有没有最新的关于 promise 的官方规范?我感觉是不是 Promise/A+是不是有点落后了?

    最关键的一点,如果手写自己的 promise 实现,怎样测试才能知道写的对不对?有官方测试用例吗?

    目前只能查到这个: https://tc39.es/ecma262/#sec-promise-objects

    13 条回复    2021-11-30 12:28:51 +08:00
    murmur
        1
    murmur  
       2021 年 11 月 29 日
    最关键的一点,不要手写自己的 promise 实现,不是给你准备了 polyfill 和浏览器版本么

    网上有那种声称可以过 800 用例的面试版实现
    murmur
        2
    murmur  
       2021 年 11 月 29 日
    ericgui
        3
    ericgui  
    OP
       2021 年 11 月 29 日
    @murmur 我在质疑 Promise/A+这个规范本身
    EPr2hh6LADQWqRVH
        4
    EPr2hh6LADQWqRVH  
       2021 年 11 月 29 日
    你为什么要手写一个 Promise 的实现?

    如果你是给小众运行时写一个 c 层次的协程 Promise ,那大神我绝不拦你。

    但如果就纯就为混个简历漂亮然后在 js 世界搞来搞去,那大可不必,正常人不会因为这个高看你的。
    rioshikelong121
        5
    rioshikelong121  
       2021 年 11 月 29 日
    测试:promises-aplus-tests
    ericgui
        6
    ericgui  
    OP
       2021 年 11 月 29 日
    @avastms 我其实也是趁机研究一下 promise 到底是什么回事,我其实一直不理解 promise 到底是什么,听完了李超的视频,再看一下 MDN ,才感觉理解一些。
    ayase252
        7
    ayase252  
       2021 年 11 月 29 日
    ericgui
        8
    ericgui  
    OP
       2021 年 11 月 30 日
    @ayase252 非常感谢
    dingyaguang117
        9
    dingyaguang117  
       2021 年 11 月 30 日 via iPhone
    觉得楼主的钻研精神是需要鼓励的
    lizhenda
        10
    lizhenda  
       2021 年 11 月 30 日
    蛮好的,很少人能刨根问底
    q447643445
        11
    q447643445  
       2021 年 11 月 30 日
    哈哈, 对培训机构的视频有了新的认识.
    ericgui
        12
    ericgui  
    OP
       2021 年 11 月 30 日
    @q447643445 免费的还是可以看看,还不错,至少大轮廓是对的
    libook
        13
    libook  
       2021 年 11 月 30 日
    Javascript 的官方规范就是 ECMA-262 ,你可以去看看标准文档,然后根据标准实现一个。

    或者直接去看 V8 里 Promise 的源码。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     670 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 21:07 PVG 05:07 LAX 13:07 JFK 16:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86