Вы устанавливаете res
для функции , которую вы назначаете onreadystatechange
. Вы хотите установить его на обещание.
Код, который вы процитировали, находится на неправильном уровне. Вы хотите создать обещание на более высоком уровне, где вы создаете XMLHttpRequest
. Вы не дали мне достаточно кода, чтобы действительно помочь вам в этом, но это будет что-то вроде:
function doARequest(/*...params...*/) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = () => {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
resolve(xhr.response);
} else {
reject(/*...whatever you want to pass, typically an Error...*/);
}
};
xhr.open(/*...arguments...*/);
// ...
});
}
Но , в любой неопределенно современной среде просто используйте fetch
взамен.