Использование промисов в конкретных реальных задачах

Рейтинг: -2Ответов: 1Опубликовано: 25.05.2023

В каких конкретных реальных задачах используются промисы? Какие есть примеры практического использования в реальных задачах (кроме динамической загрузки скриптов)? Приведите примеры, упорядоченные по темам использования. Напишите, кто на практике использовал их.

Ответы

▲ 0Принят

Например, необходимо обратиться к REST-сервису при помощи fetch API (это более удобная замена XMLHttpRequest с хорошей поддержкой современными браузерами).

Функция fetch возвращает Promise, типичное использование которого выглядит так:

fetch('https://api.my-server.ru')
  .then(response => response.json()) // парсим JSON
  .then(data => console.log(data))   // обрабатываем результат

Более сложные примеры использования fetch можно найти в этом туториале.

Но из этого простого примера не ясно, в чем преимущество Promise пред обычными callback-запросами. А оно заключается в том, что с результатом Promise можно выполнять операции как с объектами.

Например, нам необходимо скачать три JSON-файла с разных эндпоинтов сервера и сделать операцию по окончании загрузки всех трех файлов. При помощи Promise.all это делается очень легко:

const promiseNews = fetch('https://api.my-server.ru/news.json')
  .then(r => r.json());

const promisePosts = fetch('https://api.my-server.ru/posts.json')
  .then(r => r.json());

const promiseComments = fetch('https://api.my-server.ru/comments.json')
  .then(r => r.json());

Promise.all([promiseNews, promisePosts, promiseComments])
  .then(([news, posts, comments]) => {
    console.log('News:', news);
    console.log('Posts:', posts);
    console.log('Comments:', comments);
  })