异步编程
#JavaScript
#异步
#Promise
#async
JavaScript 异步编程#
Promise#
const fetchData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => resolve("数据加载完成"), 1000);
});
};
fetchData().then(data => console.log(data));
💡 提示
Promise 是异步编程的基础,表示一个异步操作的最终完成或失败。
async/await#
async function loadData() {
try {
const data = await fetchData();
console.log(data);
} catch (error) {
console.error("加载失败:", error);
}
}
✨ 技巧
async/await 是 Promise 的语法糖,让异步代码看起来像同步代码,更易阅读和维护。
异步模式对比#
// 回调函数(Callback Hell)
getData(function(a) {
getMoreData(a, function(b) {
getEvenMoreData(b, function(c) {
console.log(c);
});
});
}); 常用 API#
Promise.all()
// 并行执行多个异步操作
const [users, posts] = await Promise.all([
fetchUsers(),
fetchPosts()
]); Promise.allSettled()
// 等待所有操作完成,无论成功或失败
const results = await Promise.allSettled([
fetchUsers(),
fetchPosts()
]);