Почему Response.status это значение, а status = { Response } это ссылка на Response?
При попытке деструктировать statusиз ответа fetchв then, получил странный результат
Почему переменная statusпоказывает результат значения, но при добавлении его в объект ответа становится ссылкой на Response?
const getData = async () => { let data = await fetch(url, options) .then(async result => { const status = { result } // 200 const data = await result.json() // Данные return { data, status } }) // data.status на выходе у нас Response } |
const getData = async () => { let data = await fetch(url, options) .then(async result => { const status = { result } // 200 const data = await result.json() // Данные return { data, status } }) // data.status на выходе у нас Response }
Дополнительно:
https://learn.javascript.ru/object-copy
const status = { result } // это не деструктуризация, здесь идёт объявление переменной status куда присваивается ссылка на объект, в котором лежит ключ result: со значением result |
const status = { result } // это не деструктуризация, здесь идёт объявление переменной status куда присваивается ссылка на объект, в котором лежит ключ result: со значением result
почему тыт тут написал // 200 - непонятно
Деструкция выглядит так: const { status } = result;
Вы же создаёте переменную status и в неё записываете объект {result: result}.
Поэтому возвращает ваша функция вот такую конструкцию:
{ data: ..., status: { result: result, } } |
{ data: ..., status: { result: result, } }
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Response.status и status = { Response } оба представляют собой свойства объекта Response в программировании. Однако, есть важное различие между ними.
Когда мы пишем Response.status, мы обращаемся к конкретному значению статуса ответа, которое уже установлено в объекте Response. Это значение может быть числом, обозначающим HTTP статус (например, 200 для успешного ответа). Мы можем использовать это значение для проверки статуса ответа и принятия соответствующих действий в нашем коде.
С другой стороны, когда мы пишем status = { Response }, мы создаем ссылку на объект Response в свойстве status. Это означает, что status будет указывать на тот же объект Response, который был передан в качестве значения. Это может быть полезно, если нам нужно передать объект Response в другую часть нашего кода или выполнить операции с этим объектом.
Таким образом, Response.status является конкретным значением статуса ответа, а status = { Response } создает ссылку на объект Response. Какой из них использовать, зависит от конкретной задачи и требований вашего приложения.