Попытка получить мою голову вокруг HTTP-запросов и асинхронного поведения JavaScript.Обратный вызов Javascript XmlHttpRequest
function httpGetAsync(url, callback){
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
console.log(xmlHttp.responseText); // prints the ip address
callback(xmlHttp.responseText);
}
}
xmlHttp.open("GET", url, true)
xmlHttp.send(null);
}
httpGetAsync("http://httpbin.org/ip", function(){
console.log(this); // doesn't print the ip address
})
http-запрос просто прост, который возвращает ip-адрес в формате json запроса get. В определении функции IP-адрес может быть напечатан на консоль, только отлично, но в обратном вызове консоль выводит объект окна. this
, вероятно, неправильно использовать, как мне получить доступ к данным в xmlHttp.responseText
в обратном вызове?