Состояние готовности 4 будет означать, что вы закончили с вашим запросом.Этот пример покажет вам различные уровни readyState.
var xhr = new XMLHttpRequest();
console.log('UNSENT', xhr.readyState); // readyState will be 0
xhr.open('GET', '/api', true);
console.log('OPENED', xhr.readyState); // readyState will be 1
xhr.onprogress = function () {
console.log('LOADING', xhr.readyState); // readyState will be 3
};
xhr.onload = function () {
console.log('DONE', xhr.readyState); // readyState will be 4
};
xhr.send(null);
Более подробную информацию можно найти здесь https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState
При использовании обратного вызова, здесь есть простая функция, которая принимает имя пользователяи функцию обратного вызова, эта функция будет использовать setState для установки текущего состояния, затем она запустит свою функцию обратного вызова, так как я буду вызывать ее после setState.
function one(username, blah) {
this.setState({
username: username
})
blah()
}
Итак, теперь у вас есть готовая функция,он примет имя пользователя setState и затем запустит ЛЮБУЮ функцию, переданную при вызове.
function two() {
console.log('WOOOHOO We got a username and set state');
}
function three() {
console.log('O joy we got a username');
}
Теперь я покажу вам, как вызывать вас.
one('Bob', two) // Output: WOOOHOO We got a username and set state
one('Bob', three) // O joy we got a username
Как видите, мы вызываем одну и ту же функцию 'one', но переданные функции различны в двух примерах.