OshotOkill/understandinges6-simplified-chinese

传递一个 Promise 给 Promise.resolve() 或 Promise.reject()的问题

hazxy opened this issue · 1 comments

hazxy commented

在229页,译注里的第3点我大致测试(在Chromium 60.0.3112.113下)了一下,
Promise.resolve(Promise.reject('reject')),
会得到Promise {[[PromiseStatus]]: "rejected", [[PromiseValue]]: "reject"};
Promise.reject(Promise.reject('reject')),
会得到Promise {[[PromiseStatus]]: "rejected", [[PromiseValue]]: Promise};
也就是说对拒绝态的Promise使用Promise.resolve()会得到依旧是拒绝态的但[[PromiseValue]]是'reject',对拒绝态的Promise使用Promise.reject()会把原来的Promise包装,最后也就是和你的结论刚好相反

我也有疑惑对于这一点,4种情况试了一下,只有在 Promise.resolve() 才能返回传进去的 Promise 对象。