Node.js异步编程——Promise对象实现

发布于:2025-05-15 ⋅ 阅读:(12) ⋅ 点赞:(0)

一、Promise对象简介

Promise是一个在ES6语法中引进的专门用于处理异步操作的对。

Promise代表的含义是异步操作的结果,即一个在现在、未来或永远不可用的值,通过Promise可以判断异步操作的顺利完成或失败。

在异步编程场景中,一般将Promise对象作为函数的返回结果,我们可以将Promise对象与回调函数进行绑定,将回调函数传给Promise对象。比起在指定的函数中调用回调函数,Promise对象提供了更加灵活的异步编程方法。

Promise对象在代码运行期间主要呈现三种状态:

Pending:任务处于初始状态。

Fulfilled:任务执行成功,结果可用。

Rejected:任务执行失败,并显示错误原因。

Promise对象的大致语法如下:

let promise_obj = new Promise((resolve, reject) => {
    // 执行异步操作
    if (isSuccessful) {
        resolve("operation successful");
        // 切换到fulfilled状态
    } else {
        reject("operation failed");
        // 切换到rejected状态
    }
});

代码样例:判断一个数是否为偶数

let checkEven = new Promise((resolve, reject) => {
    let number = 6;
    if (number % 2 === 0) {
        resolve("The number is even!");
    }
    else {
        reject("The number is odd!");
    }
});
checkEven
    .then((message) => console.log(message)) // On success
    .catch((error) => console.error(error)); // On failure

运行结果:

The number is even!

二、创建Promise对象的方法

创建Promise对象时,需要将executor函数传递给Promise构造函数,该构造函数包含异步操作,并定义了异步操作执行成功和执行失败时对应的动作。

resolve和reject是构造Promise对象时默认要传入的两个参数。

Promise构造函数的语法:

let promise = new Promise(executor_function(resolve, reject) {
  // async operation code
});

Promise构造函数的匿名函数写法:

let promise = new Promise((resolve, reject) => {
  // async operation code
});

三、Promise对象的状态切换

Promise对象的状态切换遵循严格的生命周期规则,pending是初始状态,表示异步操作尚未完成。当异步操作执行成功时,状态变为fulfilled,此时会调用resolve函数,并且Promise.then()方法中的成功回调会被触发。当异步操作执行失败时,状态变为rejected,此时会调用reject函数,Promise.then()或Promise.catch()中的错误处理回调会被触发。

1.初始状态

构造Promise对象时的状态,此时状态为pending࿰


网站公告

今日签到

点亮在社区的每一天
去签到