跳到主要内容

简述Promise 的构造函数?

参考答案:

Promise的构造函数是创建Promise对象的主要方法。以下是关于Promise构造函数的基本概述:

  1. 参数:Promise构造函数接受一个函数作为参数,这个函数通常被称为"executor"函数。这个executor函数有两个参数,通常被命名为resolvereject,它们是两个函数。

    • resolve:当异步操作成功时,会调用这个函数,并将异步操作的结果作为参数传递给它。这会导致Promise对象的状态从"pending"(未完成)变为"fulfilled"(已解决)。
    • reject:当异步操作失败时,会调用这个函数,并将失败的原因(通常是一个错误对象)作为参数传递给它。这会导致Promise对象的状态从"pending"(未完成)变为"rejected"(已拒绝)。
  2. 状态:Promise对象有三种可能的状态:pending(等待中)、fulfilled(已实现)和rejected(已拒绝)。一旦Promise对象的状态从pending变为fulfilledrejected,这个状态就不会再改变。

  3. 执行:当Promise构造函数被调用时,它会立即创建一个新的Promise对象,其初始状态为pending。然后,它会同步地执行executor函数。这意味着,在Promise对象被创建之后,executor函数会立即执行,而不是等到微任务队列中的其他任务执行完毕后再执行。

这是使用Promise构造函数创建Promise对象的一个基本示例:

let promise = new Promise((resolve, reject) => {
  // 这里是异步操作
  setTimeout(() => {
    if (/* 异步操作成功 */) {
      resolve(/* 异步操作的结果 */);
    } else {
      reject(/* 失败的原因 */);
    }
  }, 1000);
});

在这个示例中,Promise构造函数接受一个executor函数作为参数。这个executor函数会在Promise对象被创建后立即执行。如果异步操作成功,它会调用resolve函数,并传递异步操作的结果作为参数。如果异步操作失败,它会调用reject函数,并传递失败的原因作为参数。然后,其他代码可以通过调用promise.then()promise.catch()来处理这个Promise对象。