@namaz_kamazov

Почему в JavaScript получение данных в fetch сделано в 2 этапа?

Насколько я понимаю этот метод в принципе существует для получения данных из внешнего источника, дак почему выполняя запрос я получаю некий объект, в котором есть что угодно кроме данных, а потом мне нужно обрабатывать ещё и его чтобы получить другой объект в котором помимо прочего так и быть будет искомое тело ответа? Для чего это сделано? Как вообще можно использовать этот первый объект?
fetch('http://example.com/movies.json')
  .then((response) => {
    return response.json();
  })
  .then((data) => {
    console.log(data);
  });

просто пример с MDN.
Мой первый язык PHP, в нём если ты хочешь получить дату ты просто пишешь
file_get_contents('почти что угодно');
и получаешь свои данные, из файла, URI, другого пхп скрипта и т.д.
Зачем всё так переусложнего в JS?
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
Это сделано для максимальной эффективности. В response есть заголовки ответа, но ещё не загрузился контент. И в этот момент ты можешь поиспользовать заголовки и стартовать ещё одну асинхронную операцию, которая будет параллельна загрузке контента. Или просто забить на контент, не ждать его. В общем, более тонкая настройка последовательности действий.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SemanticMoscow
@SemanticMoscow
добавлю в контексте PHP: можно пропихнуть в ответ произвольный заголовок,
из которого в JS так же получить некоторые данные,
и самое вкусное: можно на PHP непосредственно в сам ответ начать сессию и пропихнуть кукис, заголовки и данные, в том числе блоб (звук или видео к примеру)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы