我需要在JavaScript中編寫一個函數,它從調用異步函數返回一個狀態。但是,調用者只接收該值並且不提供回調函數。我想是這樣的:如何在JavaScript中阻止異步功能
function getState() {
var ret = null;
asyncCall("request",
function() { ret = "foo"; } // callback
);
while (ret === null)
; // block on the asynchronous call
return ret;
}
然而,循環永遠不會結束......
任何想法?謝謝。
爲什麼要首先阻止異步調用?這樣做沒有意義。 – Tomalak 2010-12-03 13:30:21
@Tomolak:因爲這是由Firefox提供的調用,我無法更改它。預計最多需要幾毫秒,因此我不想重構所有其他代碼。 – 2010-12-03 13:32:49
你可以發佈調用`getState()`的函數嗎? – Tomalak 2010-12-03 13:39:39