Thanks, I kind of got that far, but got lost in the complexity. I guess I was seeing too many new things at a time, and lost track.
Indeed, the json
and body
methods state they wait for the entire payload. I missed that body
returns a concrete type (namely Bytes
, by means of an associated type Item
). Rust docs can be daunting if most of the types on the page are new to you.
Do I simply chain a .then(my_closure)
after it, like this:
client::get(url)
.header("Accept", "application/json")
.finish().unwrap() // FIXME: propagate error
.send()
.map_err(|_| (/* FIXME: propagate error */)
.body()
.then(|response_body_or_err| my_actor.send(SomeMessage(response_body_or_err)))
?
If I understand actix
futures correctly, this expression returns a future, and if I spawn that on an Arbiter
, it will be run in the System
. Is that correct?