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

2020-11-09 17:39:11 +08:00
 genal

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

其中

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

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

916 次点击
所在节点    问与答
8 条回复
marcong95
2020-11-09 17:49:10 +08:00
链接好像错乱了,复制打开也找不到跟 promise 有关的东西

我猜是指,对于一个已经 fulfilled 的 promise,你不断地 then 它,promise 本身不会重新执行的意思
mcfog
2020-11-09 18:16:56 +08:00
genal
2020-11-09 18:25:58 +08:00
gaoryrt
2020-11-09 18:34:45 +08:00
看上去是传入上一个 resolved 的值呢
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
2020-11-09 22:54:53 +08:00
感觉上可能是机器翻译的有点问题
SoloCompany
2020-11-09 22:56:35 +08:00
"并且传入和 promise1 一样的值 value" 似乎是翻译错误, 正确的应该是 "并且把一样的值赋予 promise1 的 value"
genal
2020-11-10 09:38:46 +08:00
@SoloCompany 感谢 明白了

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

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

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

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

© 2021 V2EX