async function handleUserAction() {
try {
console.log('开始用户操作');
// 模拟多个异步操作
const [userData, userPreferences] = await Promise.all([
fetchUserData(),
fetchUserPreferences()
]);
// 处理数据
const processedData = await processUserData(userData);
// 保存结果
await saveUserData(processedData);
console.log('用户操作完成');
} catch (error) {
console.error('操作失败:', error);
// 显示错误消息
showErrorMessage(error.message);
}
}
function fetchUserData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (Math.random() > 0.3) {
resolve({ id: 1, name: '用户' });
} else {
reject(new Error('获取用户数据失败'));
}
}, 1000);
});
}
function fetchUserPreferences() {
return new Promise((resolve) => {
setTimeout(() => {
resolve({ theme: 'dark', language: 'zh' });
}, 500);
});
}
function processUserData(data) {
return new Promise((resolve) => {
setTimeout(() => {
resolve({ ...data, processed: true });
}, 300);
});
}
function saveUserData(data) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (Math.random() > 0.2) {
resolve('保存成功');
} else {
reject(new Error('保存失败'));
}
}, 800);
});
}
function showErrorMessage(message) {
console.log('显示错误:', message);
}
handleUserAction();