Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: callback, функция

Для чего нужны callback и что такое Callback Hell?

Этот вопрос проверяет знание о колбэках — одной из ключевых концепций асинхронного программирования в JavaScript, а также осведомленность о проблемах, связанных с глубоким вложением колбэков (callback hell).

Короткий ответ

Колбэк (callback) — это функция, которая передается другой функции в качестве аргумента и вызывается позже, когда произойдет какое-то событие или завершится операция. Проблема "Callback Hell" возникает, когда функции начинают вкладываться друг в друга слишком глубоко, что делает код трудночитаемым и сложным для поддержки.

Длинный ответ

В JavaScript колбэки (callbacks) широко используются для работы с асинхронным кодом. Например, когда вы делаете HTTP-запрос или работаете с таймерами, вы передаете функцию, которая будет вызвана позже, когда запрос завершится или истечет время.

Пример использования колбэка:

function fetchData(callback) {
	setTimeout(() => {
		const data = 'Server response';    
		callback(data);  
	}, 1000); 
} 
fetchData((response) => {
	console.log(response); // 'Server response' 
});

Здесь функция fetchData использует таймер setTimeout, и колбэк вызывается после истечения времени.

Однако использование большого количества вложенных колбэков может привести к проблеме, известной как "Callback Hell". Это ситуация, когда функции вкладываются друг в друга слишком глубоко, и код становится сложным для понимания:

doSomething((result1) => {
	doSomethingElse(result1, (result2) => {
		doAnotherThing(result2, (result3) => { 
			doFinalThing(result3, (finalResult) => {    
				console.log(finalResult);      
			});    
		});  
	}); 
});

Это делает код трудно поддерживаемым и отладка может стать сложной. Для решения этой проблемы были введены другие подходы, такие как Promises и async/await, которые позволяют писать асинхронный код в более линейной и понятной форме.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#callback

#функция

Подпишись на React Developer в телеграм