Что такое Promise · Frontend Developer — JobPilot

Что такое Promise

Frontend Developer · 36%
Вопрос 1878 / #
Пример ответа

Коротко: Promise — это объект в JavaScript, представляющий результат асинхронной операции, который может быть выполнен (resolved) или отклонён (rejected). В моём опыте я использовал их для обработки HTTP-запросов, управления состоянием приложений и работы с API.

Ключевые идеи:
  • Promise имеет три состояния: pending, fulfilled и rejected, что помогает управлять асинхронным кодом.
  • Методы then(), catch() и finally() позволяют обрабатывать результаты и ошибки, делая код более читаемым.
  • Promise поддерживают цепочки (chaining) для последовательного выполнения асинхронных операций.
Пример: Например, при загрузке данных с сервера: fetch('https://api.example.com/data').then(response => response.json()).then(data => console.log(data)).catch(error => console.error('Ошибка:', error)).
Пример создания и использования Promise для имитации асинхронной операции с задержкой.
javascript
// Создание Promise для имитации загрузки данных
const loadData = new Promise((resolve, reject) => {
  setTimeout(() => {
    const success = true; // Имитация успешного выполнения
    if (success) {
      resolve({ message: 'Данные успешно загружены', data: [1, 2, 3] });
    } else {
      reject(new Error('Не удалось загрузить данные'));
    }
  }, 2000); // Задержка 2 секунды
});

// Использование Promise с обработкой результатов
loadData
  .then(result => {
    console.log(result.message); // Вывод: Данные успешно загружены
    console.log('Данные:', result.data); // Вывод: Данные: [1, 2, 3]
  })
  .catch(error => {
    console.error('Ошибка:', error.message); // Обработка ошибки
  })
  .finally(() => {
    console.log('Операция завершена'); // Выполняется всегда
  });
Вопросы для интервьюера:
  • Как вы обрабатываете несколько Promise одновременно?Я использую Promise.all() для параллельного выполнения и Promise.race() для получения первого результата, что эффективно в моих проектах.
  • Какие преимущества async/await перед Promise?Async/await делает асинхронный код более синхронным и читаемым, упрощая обработку ошибок с try/catch, что я часто применяю.
Практический совет (на неделю):
  1. Практикуйтесь с Promise на реальных задачах, например, обрабатывая API-запросы в React-приложении.
  2. Изучите async/await для улучшения читаемости кода, но понимайте, что это синтаксический сахар над Promise.
Frontend Developer
Общий
36%
Навигация
Есть ли вопросы
Следующий: Какие у тебя есть вопросы
Предыдущий: Есть ли вопросы

Мы используем cookie для улучшения сайта. Продолжая пользоваться сайтом, вы соглашаетесь с политикой cookie и политикой конфиденциальности.