что такое имитация запроса? mock request?

В момент отправки запроса на сервер (имитация), заблокировать кнопку как заблокировать кнопку я понимаю но что такое имитация запроса

Я использую js/react если это важно


Ответы (1 шт):

Автор решения: Daniil Loban

Имитация, это то что не является настоящим, в данном случае запрос на сервер который не отправляется на сервер, а обрабатывается заглушкой, в приведенном ниже примере первый запрос реальный, второй - имитация (mock) и оба они ссылаются на один и тот же url (REST API).

Как именно реализовывать mock запросы зависит от библиотеки тестирования либо желания разработчика. В данном случае я для большей наглядности переписал функцию fetch что в реальном проекте делать не желательно.

Думаю в Вашем случае подойдет любая асинкхронная thenable функция, типа приведенной мной, но имеющая другое имя, например fakeFetch, перед ее вызовом Вы блокируете кнопку, в каком-то из then методов снова разблокируете ее.

Идея моков используется либо в тестировании, либо в разработке, например чтобы разные разработчики не зависили друг от друга, они имитируют что программные части которые реализуют другие разработчики уже написаны.

fetch('https://jsonplaceholder.typicode.com/todos/1')
  .then(response => response.json())
  .then(json => 
      document.querySelector('#real').textContent =
      JSON.stringify(json, null, 2)   
   )

fetch = async(url) => {
  return await Promise.resolve(
    { 
      json: () => Promise.resolve({fake: "wake up, Neo!"})
    }
  )
}

fetch('https://jsonplaceholder.typicode.com/todos/1')
  .then(response => response.json())
  .then(json => 
      document.querySelector('#imitation').textContent =
      JSON.stringify(json, null, 2)   
   )
<div>
  <span>реальный запрос</span> 
  <pre id="real">
    1
  </pre> 
</div>
<div>
  <span>имитация</span> 
  <pre id="imitation">
    2
  </pre> 
</div>

→ Ссылка