我有一個XMLHttpRequest的代碼。這是一個向服務器發送請求的對象,它是異步的,所以當我想要接收響應時,我需要爲此對象的onreadystatechange
屬性提供回調函數。而這個功能是接收響應後叫:如何使異步函數像普通函數一樣工作?
function send()
{
XMLHttpRequest req = new...
req.onreadystatechange = answer;
}
function answer()
{
//handling the answer...
}
所以這是偉大的,但我不希望使用新的功能來處理答覆,所以我做匿名:
function send()
{
XMLHttpRequest req = new...
req.onreadystatechange = function()
{
//handling the answer...
};
}
但現在我想使用其他功能的發送功能的結果,例如顯示結果:
display(send())
那麼如何使這項工作?就像:
function send()
{
XMLHttpRequest req = new...
req.onreadystatechange = function()
{
//handling the answer...
return result; //where result is returned by send function
};
}
有沒有辦法做到這一點,以便其他JS代碼仍然可以工作,而這段代碼將處理響應?
[模擬同步的XmlHttpRequest]的可能重複(http://stackoverflow.com/questions/1809931/simulating-a-synchronous -xmlhttprequest) – 2012-03-15 14:43:59
+ Andrew Marshall不一樣。 – 2012-03-15 15:20:20