genal
V2EX  ›  问与答

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

  •  
  •   genal · Nov 9, 2020 · 1540 views
    This topic created in 2038 days ago, the information mentioned may be changed or developed.

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

    其中

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

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

    Supplement 1  ·  Nov 9, 2020
    8 replies    2020-11-10 09:38:46 +08:00
    marcong95
        1
    marcong95  
       Nov 9, 2020
    链接好像错乱了,复制打开也找不到跟 promise 有关的东西

    我猜是指,对于一个已经 fulfilled 的 promise,你不断地 then 它,promise 本身不会重新执行的意思
    mcfog
        2
    mcfog  
       Nov 9, 2020 via Android
    genal
        3
    genal  
    OP
       Nov 9, 2020
    gaoryrt
        4
    gaoryrt  
       Nov 9, 2020
    看上去是传入上一个 resolved 的值呢
    SoloCompany
        5
    SoloCompany  
       Nov 9, 2020
    > 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  
       Nov 9, 2020
    感觉上可能是机器翻译的有点问题
    SoloCompany
        7
    SoloCompany  
       Nov 9, 2020
    "并且传入和 promise1 一样的值 value" 似乎是翻译错误, 正确的应该是 "并且把一样的值赋予 promise1 的 value"
    genal
        8
    genal  
    OP
       Nov 10, 2020
    @SoloCompany 感谢 明白了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3338 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 12:48 · PVG 20:48 · LAX 05:48 · JFK 08:48
    ♥ Do have faith in what you're doing.