嗨,我們一直試圖解決這個問題在過去的幾個小時,並決定ID在這裏睡覺之前把它放在這裏,無論如何,問題是我需要確保GET/POST請求在繼續執行代碼之前已經100%處理完畢,我用firefox addon sdk中的定時器解決了這個問題,但是因爲這是java腳本,它鎖定了UI,所以我一直在尋找解決方案我偶然發現了Felix Kling的一個潛在解決方案,「How do I return the response from an asynchronous call?」。儘管我嘗試過沒有成功,所以我想知道如果有人能告訴我什麼是我做錯了,或者如果我甚至不能使用這個解決方案來做我想做的事情。在繼續之前確保異步GET/POST請求已完成
download_status(download_database());
function download_status(downloadStatus){
if(downloadStatus==0){
console.log(regexArray.length);
}
else{
console.log("oh no");
}
}
function download_database(){
var downloadDone = 0;
var requestDB = request.Request({
url: "http://phyzical.pythonanywhere.com/download_db/",
onComplete: function(response){
console.log(response.statusText);
if(response.json == null){
console.log("cannot retreive json properly.")
}
else{
var dbInfoLength = response.json.length;
var idNumber = 0;
for(var x=0;x<dbInfoLength;x++){
try{
var patt1=new RegExp(response.json[x].regex);
idArray[idNumber] = response.json[x].id;
regexArray[idNumber] = response.json[x].regex;
incorrectMessageArray[idNumber] = response.json[x].incorrect_information;
correctMessageArray[idNumber] = response.json[x].correct_information;
idNumber++;
}
catch(e){
console.log("The annotation with the id: \""+ response.json[x].id+" " + e.message + "\" is wrong.");
}
}
downloadDone = 0;
}
},
}).get();
return downloadDone;
}
黯然regexArray.length日誌從一開始的「0」,然後「確定」,然後將捕獲的火災之一,所以我知道的信息被存儲到陣列簡單,同樣的問題我開始仍然存在。
任何幫助,將不勝感激。
您鏈接的帖子 - 非常清楚地解釋它的一切。你需要使用回調。 – webduvet