http-kit какая разница между отправкой ответа по каналу и просто возвратом карты
Как видно из названия. В чем разница между отправкой ответа через канал и просто возвратом карты.
(defn handler-one
[request]
(response "hello world")
(defn handler-two
[request]
(with-channel request channel
(send! channel (response "hello world"))
2 ответа
handler-one
Функция использует синхронный подход. Запрос -> Ответ
handle-two
это способ достижения запроса -> ответ, но асинхронно.
Вы можете проверить макроопределение с каналом для получения дополнительной информации о реализации (и документации).
Если вы хотите больше узнать об асинхронном подходе в целом, я рекомендую узнать об одном из: Фьючерсы, Реактивное программирование, Netty, Node.js или Vert.x
Следуя теории каналов core.async, если вы используете каналы, у вас будет неблокируемая связь, что означает, что ваш поток не будет заблокирован до ответа http. Если вы используете блокировку связи в ожидании http-ответа карты, ваш поток будет заблокирован