V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
genal
V2EX  ›  问与答

请求大神!前端求支援!不是特别理解 PromiseA+规范里面的特别条例

  •  
  •   genal · 2020-11-09 17:39:11 +08:00 · 906 次点击
    这是一个创建于 1256 天前的主题,其中的信息可能已经有所发展或是发生改变。

    翻译中文的 PromiseA+ https://juejin.im/post/6844904086358212621?utm_source=gold_browser_extension#heading-15

    其中

    2.3.2.2 如果或当 x 状态是 fulfilled,resolve 它,并且传入和 promise1 一样的值 value

    为什么要传入和 promise1 一样的值 value 这是什么意思

    第 1 条附言  ·  2020-11-09 18:27:12 +08:00
    8 条回复    2020-11-10 09:38:46 +08:00
    marcong95
        1
    marcong95  
       2020-11-09 17:49:10 +08:00
    链接好像错乱了,复制打开也找不到跟 promise 有关的东西

    我猜是指,对于一个已经 fulfilled 的 promise,你不断地 then 它,promise 本身不会重新执行的意思
    mcfog
        2
    mcfog  
       2020-11-09 18:16:56 +08:00 via Android
    genal
        3
    genal  
    OP
       2020-11-09 18:25:58 +08:00
    gaoryrt
        4
    gaoryrt  
       2020-11-09 18:34:45 +08:00
    看上去是传入上一个 resolved 的值呢
    SoloCompany
        5
    SoloCompany  
       2020-11-09 22:52:46 +08:00
    > 2.3 [[Resolve]](promise, x)
    可以理解为 js 的 let promise1 = new Promise(resolve => { resolve(x) })
    [[Resolve]] 就是指这个 closure 内的 resolve 方法

    > 2.3.1 如果返回的 promise1 和 x 是指向同一个引用(循环引用),则抛出错误
    对应上述表述, 即在 closure 内执行 resolve(promise1) 的结果是抛异常

    > 2.3.2.2 如果或当 x 状态是 fulfilled,resolve 它,并且传入和 promise1 一样的值 value
    对应上述表述, 即在 closure 内执行 resolve(x) 的结果是 x 的状态结果值
    SoloCompany
        6
    SoloCompany  
       2020-11-09 22:54:53 +08:00
    感觉上可能是机器翻译的有点问题
    SoloCompany
        7
    SoloCompany  
       2020-11-09 22:56:35 +08:00
    "并且传入和 promise1 一样的值 value" 似乎是翻译错误, 正确的应该是 "并且把一样的值赋予 promise1 的 value"
    genal
        8
    genal  
    OP
       2020-11-10 09:38:46 +08:00
    @SoloCompany 感谢 明白了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5217 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:43 · PVG 16:43 · LAX 01:43 · JFK 04:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.