好吧,我一直試圖讓這個工作在過去的兩天,我無法弄清楚我做錯了什麼。我有一個稱爲「ping」的函數進行計算,並且我有一個回調函數來檢索計算的值,但我所收到的所有內容都是未定義的!Javascript函數返回undefined
var test;
var p = ping('apple.com', function (num) {
test = num;
console.log(test); //this works, the value is displayed in the console.
});
console.log("p: " +p); //says undefined
console.log("test: " +test); //says undefined
有人能告訴我我做錯了什麼嗎?謝謝!
編輯: 下面是ping功能:
function ping(host, pong) {
var started = new Date().getTime();
var http = new XMLHttpRequest();
http.open("GET", "http://" + host, /*async*/true);
http.onreadystatechange = function() {
if (http.readyState == 4) {
var ended = new Date().getTime();
var milliseconds = ended - started;
if (pong != null) {
pong(milliseconds);
//console.log(milliseconds);
return milliseconds;
}
}
};
try {
http.send(null);
} catch(exception) {
// this is expected
}
}
你能告訴我們你的ping功能嗎?我敢打賭,p沒有返回任何東西 – Luis
看起來像'ping()'是一個異步方法 –
它是異步的。我如何得到這個工作? – twkl