#asynchronous #promise #service-worker #clojurescript #channel
#асинхронный #обещание #service-worker #clojurescript #канал
Вопрос:
Признаюсь, я еще не изучал core.async
. Т.е. я не знаю, как clojure работает асинхронно, но я знаю, что в основном используются каналы. Я работаю в основном в clojurescript и собираюсь начать писать service worker.
Я нашел эту библиотеку для записи обещаний в виде каналов, но, похоже, что без использования библиотеки не так уж много работы.
Итак, должен ли я использовать каналы вместо обещаний в любой ситуации?
Существует ли простое преобразование из обещаний в core.async
использование каналов?
Комментарии:
1. Есть ли у кого-нибудь параллельный пример чего-либо, реализованного с использованием js promises, и того же, что реализовано с использованием каналов?
Ответ №1:
Если вы посмотрите на исходный rational для core.async, становится понятнее, что у него есть преимущества перед использованием другого потока, такого как с future
. ClojureScript был одним из основных драйверов, поскольку он однопоточный и других вариантов нет.
Некоторые ресурсы:
- https://clojure.org/news/2013/06/28/clojure-clore-async-channels
- https://github.com/clojure/core.async/blob/master/examples/walkthrough.clj
- https://cognitect.com/videos.html (2 на CLJS core.async)
- https://github.com/cognitect/async-webinar
- https://rigsomelight.com/drafts/clojurescript-core-async-todos.html
- https://medium.com/@loganpowell/cljs-core-async-101-f6522faf536d
Комментарии:
1. Пожалуйста, избегайте ответов только по ссылкам. Полезно подкреплять ответы ссылками, но, пожалуйста, напишите в самом сообщении, что эти ресурсы утверждают о каналах против обещаний.