Promise reject方法

2023-05-23 10:06:31 浏览数 (2)

Promise的reject方法

reject方法是Promise对象原型上的一个方法,用于将Promise对象的状态转变为已失败(rejected)状态。它接受一个参数,该参数表示异步操作的错误原因。

语法

代码语言:javascript复制
Promise.reject(reason);

其中,reason表示异步操作的错误原因。

示例代码

下面是一个示例代码,演示了reject方法的使用:

代码语言:javascript复制
function performAsyncTask() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      reject(new Error('Async operation failed.'));
    }, 2000);
  });
}

const promise = performAsyncTask();

promise.catch(error => {
  console.error('Error:', error.message); // 输出异步操作的错误原因
});

在上述示例中,我们定义了一个performAsyncTask函数,它返回一个Promise对象,并模拟了一个异步操作。在异步操作失败时,我们调用reject方法将Promise的状态设置为rejected,并传递一个Error对象作为错误原因。

然后,我们通过.catch()方法来处理Promise对象的rejected状态,并输出异步操作的错误原因。

reject方法的特点

reject方法具有以下特点:

  1. reject方法是静态方法,可以直接通过Promise.reject()调用,不需要先创建Promise实例。
  2. 如果传递给reject方法的参数是一个Promise对象,则会直接返回该Promise对象,不会创建新的Promise对象。
  3. 如果不传递参数给reject方法,或者传递的参数是undefined,则会将Promise的状态设置为rejected,且错误原因为undefined

下面是一些示例代码,展示了reject方法的不同用法:

代码语言:javascript复制
// 示例1: 直接调用reject方法,创建一个已失败状态的Promise对象
const promise1 = Promise.reject(new Error('Rejected reason'));
promise1.catch(error => {
  console.error(error.message); // 输出: Rejected reason
});

// 示例2: 传递一个Promise对象给reject方法
const promise2 = new Promise((resolve, reject) => {
  reject(new Error('Inner rejected reason'));
});
const promise3 = Promise.reject(promise2);
console.log(promise2 === promise3); // 输出: true

// 示例3: 不传递参数给reject方法
const promise4 = Promise.reject();
promise4.catch(error => {
  console.error(error); // 输出: undefined
});

在上述示例中,我们展示了不同方式使用reject方法创建和处理Promise对象。

0 人点赞