今天我只是在探索 JavaScript 中的 Promises,我遇到了这个:
Promise.reject("Failed");
给予
Promise { <state>: "rejected",<reason>: "Failed" }
Uncaught (in promise) Failed
然而,
Promise.reject("Failed").catch((reason) => console.log(reason));
给予
Failed
Promise { <state>: "fulfilled",<value>: undefined }
我知道在后者中,拒绝被捕获,因此只是一条普通的控制台消息,但为什么承诺本身在被拒绝时变为已履行。