promise~jwaldrip
Promise.cr
A Promise Implementation in Crystal.
Installation
Add promise
to the shard.yml file as a dependency.
# shard.yml
dependencies:
promise:
github: jwaldrip/promise.cr
tag: {desired_tag}
Usage
require "promise"
require "http/client"
require "json"
def read_body(response : HTTP::Client::Response) : String
response.body
end
request = Promise(HTTP::Client::Response | JSON::Any).execute do |resolve|
HTTP::Client.get "https://httpbin.org/user-agent"
end
puts "do something else...."
request.then do |response|
JSON.parse(read_body(response as HTTP::Client::Response))
end.catch do |ex|
puts "caught!"
puts ex.message
end.then do |json_hash|
puts json_hash
end.await
Documentation
You can generate docs using crystal doc
on your local machine,
or visit: https://jwaldrip.github.com/promise-cr to view the current version's
documentation.
Contributing
See CONTRIBUTING