ToolkitX
知识库工具箱

异步编程

Promise, async/await, 事件循环

25min·进阶

01. Promise

Promise 是异步编程的解决方案,代表一个尚未完成但预期将来会完成的操作。有三种状态:pending、fulfilled、rejected。
javascript
// 创建 Promise
const fetchData = new Promise((resolve, reject) => {
setTimeout(() => {
    resolve({ id: 1, name: "Alice" });
}, 1000);
});

// 使用 Promise
fetchData
.then(data => console.log(data))
.catch(error => console.error(error));

// Promise.all - 全部成功才成功
const results = await Promise.all([
fetch("/api/users"),
fetch("/api/posts"),
]);

02. async/await

async/await 是 Promise 的语法糖,让异步代码看起来像同步代码。async 函数自动返回 Promise。
javascript
// async 函数
async function getUser(id) {
const response = await fetch("/api/users/" + id);
const user = await response.json();
return user;
}

// 使用
try {
const user = await getUser(1);
console.log(user);
} catch (error) {
console.error("获取用户失败:", error);
}

// 并发执行
async function loadDashboard() {
const [users, posts] = await Promise.all([
    fetchUsers(),
    fetchPosts(),
]);
return { users, posts };
}

知识测验

1/5正确 0

Promise 的三种状态是什么?

下一节

ES6+ 新特性

下一节