function fetchUserData(userId, callback) {
console.log('(1) 获取用户数据...');
setTimeout(() => {
if (userId === 1) {
console.log('(1) 用户数据已获取');
callback({ id: 1, name: 'John Doe', role: 'admin' }, null);
} else {
callback(null, '用户未找到');
}
}, 1000);
}
function fetchUserPermissions(role, callback) {
console.log('(2) 获取角色权限:', role);
setTimeout(() => {
if (role === 'admin') {
console.log('(2) 权限已获取');
callback(['read', 'write', 'delete'], null);
} else {
callback(null, '此角色未找到权限');
}
}, 1000);
}
function logAccessAttempt(user, permissions, callback) {
console.log('(3) 记录访问尝试...');
setTimeout(() => {
if (permissions.includes('write')) {
console.log(`(3) 用户访问已记录: ${user.name}`);
callback('访问记录成功', null);
} else {
callback(null, '访问记录权限不足');
}
}, 1000);
}
fetchUserData(1, (user, err) => {
if (err) return console.log(err);
fetchUserPermissions(user.role, (permissions, err) => {
if (err) return console.log(err);
logAccessAttempt(user, permissions, (result, err) => {
if (err) return console.log(err);
console.log(result);
});
});
});