對一個陣列provinces添加了幾個字串作為元素后,
console.log(provinces)可以看到如下的結果:

而如果列印首元素console.log(provinces[0])就會報undefined

完整情況是我通過ajax請求,將拿到的值賦給陣列
(function () {
var myChart = echarts.init(document.querySelector("#top5_provinces"));
var provinces = [];
$.ajax({
url: "/covid/current",
type: "GET",
data: { action: "list_current_provinces" },
dataType: "json",
success: function (result) {
for (var i = 0; i < 5; i++) {
provinces[i]="test";//這邊簡化為賦值test,請求是可以正常發出的
}
}
});
console.log(provinces);
console.log(provinces[0]);
})();
結果如下:

就很懵逼,而且這個provinces陣列后續要拿去通過echarts畫圖,也沒法正常使用
uj5u.com熱心網友回復:
ajax中是異步方法,你不能在異步方法以外去使用方法內才得以填充的資料;你可以封裝一個異步函式,然后await,就可以。像你這種場景,建議你封裝好ajax,然后使用回呼方法去處理echarts。或者干脆用Promise封裝一下,到then中去處理echarts
然后:你第一條每次都能列印出完整的陣列來???這個和我所知有沖突呀
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/271790.html
標籤:JavaScript
上一篇:前端知識無序串列求解!
下一篇:typescript中 modifiers: ?ASTModifiers是什么意思,查看typescript技術檔案沒看到這種語法
