Fixing how `xhr` is nulled within `client.request()` & `client.response()` by leveraging the `Promise`