MST

星途 面试题库

面试题:JavaScript 异步迭代在大数据处理场景下的基本应用

假设你有一个包含大量用户数据(例如每个用户对象包含姓名、年龄、地址等信息)的数组,要求使用 JavaScript 的异步迭代方法(如 `for - await...of`),对每个用户的数据进行异步操作(例如向服务器发送请求获取该用户更多详细信息),最后将所有完整的用户信息整理成一个新数组并返回。请编写实现该功能的代码。
36.1万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
async function getUserDetails(user) {
    // 模拟异步操作,例如向服务器发送请求获取更多详细信息
    return new Promise((resolve) => {
        setTimeout(() => {
            const newDetails = { additionalInfo: `Extra info for ${user.name}` };
            resolve({...user, ...newDetails });
        }, 1000);
    });
}

async function processUsers(users) {
    let newUsers = [];
    for await (const user of users) {
        const updatedUser = await getUserDetails(user);
        newUsers.push(updatedUser);
    }
    return newUsers;
}

// 示例用法
const users = [
    { name: 'Alice', age: 30, address: '123 Wonderland' },
    { name: 'Bob', age: 25, address: '456 Elm St' }
];

processUsers(users).then((result) => {
    console.log(result);
});