add async request.

An async request can take a Pid or a function to recover the result if needed.