代碼中async: false設置同步請求,success回調中賦值cpuNumMax,但$(document).ready中輸出仍為初始值1。
cpuNumMax聲明在全局,無遮蔽問題。success中寫成了cpuNumMxa(拼寫錯誤),導致創建了新的全局變量,原變量未被修改。"use strict";禁止隱式全局變量,報錯提前發現。async/await或Promise鏈式調用。window.cpuNumMax對比cpuNumMax,或設置斷點觀察變量變化。var cpuNumMax = 1;
function getVMProductByTypeMap() {
$.ajax({
url: "...",
async: false, // 不推薦,示例保留
success: function(data) {
cpuNumMax = parseInt(data[0].cpuNumMax); // 修正拼寫
}
});
}
$(document).ready(function() {
getVMProductByTypeMap();
console.log(cpuNumMax); // 正確輸出服務器返回值
});