此代碼掛起。強制使用閉包同步JavaScript
我有理由相信這是因爲匿名函數中的響應是一個新的變量沒有與外部範圍連接。我該如何解決這個問題?
function foo() { //...
var url = "http://urliciously-urlish-url"
response = null;
$.get(url, function (data) {response = data;
});
while(response === null)
{
1;
}
console.log(response);
//...
}
注我知道,這樣的設計會(像往常一樣爲輪詢系統)掛在頁面直到響應變得非空。在這種情況下沒關係。
你確認你的$ .get正在返回東西嗎? – 2012-04-18 18:15:10
@Cris:是的,網址是正確的。 – 2012-04-18 18:18:35
下面的答案是正確的 - 一般來說,異步寫作是你應該做的 - 但是一個爭論的焦點:僅僅因爲url是正確的,並不意味着使用chrome inspector,fiddler或者確認你正在獲取數據的其他內容。 – 2012-04-18 18:22:13