Несколько месяцев назад я написал статью о HTTP-перехватчике в новом Angular. Это полезно для таких вещей, как глобальные заголовки HTTP или вызов некоторых промежуточных программ.

Это реальный пример того, как показывать предварительный загрузчик с каждым HTTP-запросом через HTTP-перехватчик. С моей точки зрения, глобальное решение этой проблемы не является антипаттерном. Мы по-прежнему можем использовать множество различных прелоадеров, а не только один.

В этой статье я использую HTTP-перехватчик из моей предыдущей статьи, для полного понимания, пожалуйста, прочтите сначала эту статью.

Хорошо, теперь мы готовы, поехали !!

Сначала мы определяем компонент большого прелоадера.

И для небольшого прелоадера.

Теперь мы можем создать наш PreloaderService, в котором мы определяем статические переменные типа Number для большого и малого прелоадера. Мы будем изменять их с помощью общедоступных методов PreloaderService # showPreloader (type) и PreloaderService # hidePreloader (type). Мы можем вызывать их с типом параметра, который является именем предварительного загрузчика, который мы можем показать или скрыть. В реальном приложении мы можем вызывать множество запросов одновременно, но мы можем показать предварительный загрузчик с началом первого запроса и скрыть его, когда последний запрос будет выполнен. Эту ситуацию мы можем решить с помощью нашей статической переменной, которую мы определили. Значение переменной мы увеличиваем / уменьшаем с каждым запросом. При значении 0 прелоадер скрыт.

Наш PreloaderService нам нужно добавить в конструктор в нашей службе HttpInterceptor.

Теперь мы готовы завершить наш пример. Мы можем добавить наши прелоадеры в нужное место в нашем приложении.

Вы можете прочитать и попробовать весь код в моем репозитории GitHub.



Спасибо за чтение! 🐹🐯