5A景区网站建设

Javascript异步编程之Promise学习

Promise 是 JavaScript 中处理异步操作的一种方式,它代表了一个异步操作的最终完成或失败,并且可以获取其结果值。Promise 对象有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败),一旦状态改变,就会触发相应的回调函数。以下是关于 Promise 的一些重要内容:

1. 创建 Promise:

2. Promise 状态:

3. Promise 方法:

4. Promise 链式调用:

5. Promise.all() 和 Promise.race():

示例:

 

// 创建 Promise 对象
let promise = new Promise((resolve, reject) => {
    setTimeout(() => {
        let success = true;
        if (success) {
            resolve("Operation completed successfully!");
        } else {
            reject("Operation failed!");
        }
    }, 1000);
});

// 注册成功和失败回调函数
promise.then(
    result => {
        console.log("Success:", result);
    },
    error => {
        console.log("Error:", error);
    }
);

// 使用 Promise 链式调用处理多个异步操作
let asyncTask1 = () => {
    return new Promise(resolve => {
        setTimeout(() => {
            resolve("Async Task 1 completed!");
        }, 2000);
    });
};

let asyncTask2 = () => {
    return new Promise(resolve => {
        setTimeout(() => {
            resolve("Async Task 2 completed!");
        }, 1000);
    });
};

asyncTask1()
    .then(result => {
        console.log(result);
        return asyncTask2();
    })
    .then(result => {
        console.log(result);
    })
    .catch(error => {
        console.error(error);
    });

// 使用 Promise.all() 处理多个异步操作
Promise.all([asyncTask1(), asyncTask2()])
    .then(results => {
        console.log("All tasks completed:", results);
    })
    .catch(error => {
        console.error(error);
    });

// 使用 Promise.race() 处理多个异步操作
Promise.race([asyncTask1(), asyncTask2()])
    .then(result => {
        console.log("First task completed:", result);
    })
    .catch(error => {
        console.error(error);
    });

 

退出移动版