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.
Instead of throwing an exception, you should reject the promise here and in the other case below.