我有一些代碼的麻煩。我使用console.log()
來輸出變量的內容,但它似乎$.post()
需要很長的時間,因此我的變量沒有被正確設置。這是我的代碼。
$.tmsmm = {
duplicate_meeting : "something"
};
$.post("scripts/check_duplicate_meetings.php", { meeting_date: meeting_date, meeting_type: meeting_type }, function(data) {
$.tmsmm.duplicate_meeting = data;
console.log("myVar: " + $.tmsmm.duplicate_meeting);
});
console.log("myVar2: " + $.tmsmm.duplicate_meeting);
什麼是輸出:
myVar2:東西
myVar的:這是阿賈克斯的數據!
正如您所看到的,myVar2在myVar之前被記錄。我如何解決這個問題?
UPDATE:之所以這個方案適合我的情況最好VS呼籲成功或使用.post的$完成的功能是,我有很多的代碼,這個樣本是取決於變量值之後到來。我只記錄了2次不同的時間值,以解決爲什麼我的變量沒有設置在$ .post函數之外的原因。感謝大家的幫助!
+1 - 正是我要寫的。對於OP,請注意,有些瀏覽器可能會掛起或停止呈現,直到現在的同步請求完成。 – Bojangles
如果您可以偵聽「完成」或「成功」事件,爲什麼將其設置爲「異步」? – Shef
好點Shef。 – Bojangles