Existe algum problema de fazer as condições do IF assim ? Vi que o instrutor preferiu separar em dois if's.
if(xhr.readyState == 4 && xhr.status == 200)
class HttpService {
get(url) {
return new Promise((resolve, reject) => {
let xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.onreadystatechange = () => {
//AQUI EMBAIXO ESTÁ A MUDANÇA
if(xhr.readyState == 4 && xhr.status == 200) {
resolve(JSON.parse(xhr.responseText));
} else {
reject(xhr.responseText);
}
};
xhr.send();
});
}