Similar to readBytes except :
a) a temporary buffer is reused, meaning a single fetchBytes must occur at a single time
b) it will throw an Eof exception if the data is not available
Same as readBytes, but the read is performed in async mode
onDone is called in the calling thread (through its event loop) with the number of bytes read, unless the request is cancelled.
The out bytes must not be accessed until then.