Giter VIP home page Giter VIP logo

Comments (2)

niwinz avatar niwinz commented on August 24, 2024 1

It there different way to do that.

Your register function should be something similar to:

(defn register-user
  [params]
  (p/promise
   (fn [resolve reject]
     (http/post url {:params params
                     :handler resolve
                     :error-handler reject}))))

Then, you can use it in different ways, depending on when you want handle the error case.

This one uses the default promise chaining functions:

(-> (register-user {:username "foo"
                    :password "bar"})
    (p/then #(.log js/console "Success:" %))
    (p/catch #(.error js/console "Error:" %)))

Also, you can use let instead of thread macro:

(let [result (register-user {:username "foo"
                             :password "bar"})]
  (p/then result #(.log js/console "Success:" %))
  (p/catch result #(.error js/console "Error:" %)))

Or inclusive you can use the monadic binding using cats:

(require '[cats.core :as m])

(m/mlet [result (register-user {:username "foo"
                                :password "bar"})]
  ;; The mlet body will be executed only if the
  ;; result will successfully resolved.
  (.log js/console "Success " result))

from promesa.

JarrodCTaylor avatar JarrodCTaylor commented on August 24, 2024

Thanks! Very clear examples, makes complete sense.

from promesa.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.