📜  在 JavaScript 中拒绝与抛出 Promise(1)

📅  最后修改于: 2023-12-03 15:37:21.943000             🧑  作者: Mango

在 JavaScript 中拒绝与抛出 Promise

在 JavaScript 中,Promise 是一种延迟计算结果的机制。一个 Promise 对象代表了一个可能还未完成的异步操作,并可以在异步操作完成后决定是执行成功解决还是失败拒绝。在某些情况下,我们需要手动拒绝一个 Promise 对象来表示异步操作的失败状态,或者抛出一个 Promise 对象来捕获异常并返回失败状态。

拒绝 Promise

拒绝 Promise 可以使用 Promise.reject() 方法。Promise.reject() 方法返回一个新的Promise对象,它的结果值被拒绝(rejected),并且有一个可选的参数作为拒绝原因(理由)。

代码示例:

const rejectedPromise = Promise.reject('失败原因');
rejectedPromise.catch((reason) => console.log(reason)); // 输出:失败原因
抛出 Promise

抛出 Promise 可以在 async 函数中使用 throw 语句。这时,抛出的 Promise 对象会被捕获并被视为异步操作的失败状态。

代码示例:

async function myAsyncFunction() {
  throw Promise.reject('失败原因');
}

myAsyncFunction().catch((reason) => console.log(reason)); // 输出:失败原因

请注意,在此示例中,用 throw 语句抛出的 Promise 对象与用 Promise.reject() 方法创建的 Promise 对象是等效的。它们都是被拒绝的 Promise 对象。

结论

在 JavaScript 中,我们可以使用 Promise.reject() 方法手动拒绝一个 Promise 对象来表示异步操作的失败状态,也可以在 async 函数中使用 throw 语句抛出一个 Promise 对象来表示异步操作的失败状态。这些机制都让我们可以更好地控制异步操作的状态,从而在代码中更好地处理异步操作的异常情况。