Как ждать cl js .core.asyn c .impl.channels.ManyToManyChannel в clojurescript? - PullRequest
0 голосов
/ 23 февраля 2020

После выполнения запроса cl js -http.client, например, так: (http/get ...) и попытки prn ответа, я получаю следующее:

cljs.core.async.impl.channels.ManyToManyChannel

Как await (как в JS) этот объект, чтобы получить фактический ответ?

- Редактировать -

Выполнение

   (prn "result is " (go (let [result (<! (http/get "http://myurl.com"))]
                               result
                )))

Все еще дает мне "результат является cl js .core.asyn c .impl.channels.ManyToManyChannel "

, в то время как я ожидаю объект.

1 Ответ

0 голосов
/ 23 февраля 2020

Все функции HTTP в / cl js -http / return core.asyn c канал. Когда запрос завершен или не выполнен, он помещается на этот канал. Вы можете получить ответ из этого канала с помощью функции <! в блоке a go.

  (go (let [response (<! (http/get "https://api.github.com/users"
                                   {:with-credentials? false
                                    :query-params {"since" 135}}))]
        (prn (:status response))
        (prn (map :login (:body response)))))

Источник: https://github.com/r0man/cljs-http#async -response- обработка

...