#javascript
Прочитал в руководстве MDN о том, как получить из ответа сервера текст, но не очень понял, почему это объект Promise, ведь ответ уже получен, почему нельзя сразу прочитать его? Например, почему вместо response.text().then(function(text) { // ... }); нельзя было бы сделать: var text = response.text();
Ответы
Ответ 1
Не знаю, как у них внутри это работает, могу предположить 2 варианта: Это сделано для унификации интерфейсов, чтоб везде были промисы. Возможно при вызове fetch только хедеры читаются, а не сам body, только потом при вызове text() начинается чтение самого тела запроса. Плюс в момент вызова text(), вероятно, только начинается чтение. То есть, если бы это было синхронно, как вы предлагаете response.text(), то это заблочило бы основной поток, а так response.text().then(...) сработает только когда файл будет прочитан целиком. Поправьте, если не прав.
Комментариев нет:
Отправить комментарий