Allow reading if there is data left in the buffer event socket is closed

@marco-c The root cause of the previous test failing is that the socket is closed before the data in the buffer is fetched, this bug is triggered right after we use Native.create and Promise.
Also need to return here after rejecting the promise, otherwise the rest of the function will be executed.