Requests typically invoke a callback on completion, and must not return from Cancel or Wait on any thread until any associated callbacks have finished executing. This property is crucial to allowing requests to be chained or nested by creating new requests from within callbacks.