Any pointer to make ClojureScript + JavaScript interop work with promise library?

Hi All,

I am not sure if this is the right place to post

const api = require(‘node-gitlab-api’) ({
     url: ‘https://….’,
     token: ‘…’

function js_interops(api) {
   api.projects.all( {max_pages: 1,
                             per_page: 5
   .then((projects) => {
      for (project of projects) {

I did the first part like

(def gitlab (js/require "node-gitlab-api" (clj->js {:url ""
                                                    :token "<some-token>"

I am having a problem getting this translate to ClojureScript especially the promise library in ClojureScript in the 2nd part.

Any recommendation on how to best handle this?

Any guide/pointer is greatly appreciated.

1 Like
(def node-gitlab-api (js/require "node-gitlab-api"))

(def api (node-gitlab-api #js {:url "" :token ""}))

(-> (.all api.projects #js {:max_pages 1 :per_page 5})
    (.then #(doseq [project %]
              (println project))))

One thing I noticed is that there’s for...of iteration which doesn’t seem necessary here, bc most likely projects is just a collection of data. But if it’s really a custom iterable object, then the code might be a bit different.



Thank you so much for this. I did not know it would be so simple.

1 Like