Привет!Меня зовут Максим, и в этой статье я хочу поделиться с вами функцией, которая имитирует запрос к серверу для получения пользователя по его ID. Ваша задача включает создание функции fetchUser, которая принимает ID в качестве аргумента и возвращает пользователя из массива USERS с соответствующим ID.Вот мой код реализации этой функции⁚
javascript
const USERS [
{ id⁚ ‘001’, name⁚ ″Алексей″, age⁚ 25 },
{ id⁚ ‘002’, name⁚ ″Иван″, age⁚ 28 },
{ id⁚ ‘003’, name⁚ ″Егор″, age⁚ 30 },
];
function fetchUser(id) {
return new Promise((resolve, reject) > {
setTimeout( > {
const user USERS.find(user > user.id id);
if (user) {
resolve(user);
} else {
reject(new Error(`Пользователя с ID ${id} не существует`));
}
}, 2500);
});
}
async function start {
try {
const result await fetchUser(‘001’);
console.log(result);
} catch (error) {
console.log(error);
}
}
start;
Внутри функции `fetchUser` я использую `setTimeout` с задержкой в 2500 миллисекунд для имитации запроса к серверу. Затем я ищу пользователя в массиве USERS с переданным ID и возвращаю его٫ если он найден. Если пользователь не найден٫ я создаю и обрабатываю исключение с помощью метода `reject` и передаю ошибку в виде нового объекта `Error`.
В функции `start` я использую ключевое слово `await` для ожидания результата запроса `fetchUser(‘001’)`. После получения результата, я использую `console.log` для вывода пользователя в консоль.
Моя функция позволяет точно эмулировать задержку при получении данных с сервера, что может быть полезно при разработке и тестировании. Она также обрабатывает случаи отсутствия пользователя и предоставляет возможность работать с асинхронным кодом с использованием `async/await`.
Надеюсь, эта статья была полезной для вас! Если у вас есть какие-либо вопросы или комментарии, пожалуйста, не стесняйтесь задавать их. Удачи вам в программировании!