我寫了一個函數來獲取各種詠歎調中的所有數據這樣的..Dojo:異步xhrGet返回 - undefined?
function retrieveData(dom_sclapi) {
var apiResponse;
dojo.xhrGet({
url : dom_sclapi,
handleAs: handle,
//sync: true,
headers: { "Accept": "application/json" },
preventCache: true,
//Success
load: function(Response) {
apiResponse = Response;
},
// Ooops! Error!
error: function(Error, ioArgs) {
//apiResponse = Error;
//console.log(ioArgs.xhr.status);
}
});
//apiResponse
return apiResponse;
}
但apiResponse上同步(當我評論同步attrribute這裏)返回一個未定義= FALSE狀態。它的返回僅在sync = true時正確輸出數據。因此,這會導致加載樣式中的Chrome和IE出現問題,因爲Chrome和IE會阻止同步調用中的所有其他操作。
我該如何克服這種情況?我的代碼的實際問題是什麼?
而不是返回響應,返回的內容dojo.xhrGet讓你回來 - 這就是遞延下面提到(。於是,.addCallbacks(SUCC功能,功能ERR)等),因此,如果你鉤了一個延期你也可以省去'load'和'error'參數 – mschr 2012-08-02 13:48:22
如果你的console.log(Response)在你的負載中我敢打賭它正在得到你想要的。我看到的問題是範圍。您可能希望將加載函數的作用域綁定到調用上下文,因爲默認情況下它將在窗口上執行。 – Steve 2012-08-02 15:34:33