because then we can just do `returnValue.emit('error', result)` or `returnValue.emit('complete', result)`