[英]Add Event Listener to Array index
我有一個數組,由D3在頁面加載時填充。 我想在另一個時間訪問相同的數組,但是我仍然需要確認它已被加載。
我不知道執行此操作的正確方法,所以我只猜了幾次,就不斷收到“不是函數”錯誤
第一個代碼(填充我的svg,當前值的快照)
d3.tsv("file.txt").then( function(data) { Loaded_Data[1]=data; document.getElementById("valve1").innerHTML = data[data.length-1]['OnOff']; //etc
});
很久以后,但仍處於異步的相關時間范圍內,我想對這些數據進行一些d3繪圖,但我想確保數組中有數據。
以后的代碼(填充圖形,數周的數據)
Loaded_Data[1].addEventListener('load', () => {console.log("success"); //d3.graphing; });
我基本上想要一個:while(array [1] is undefined){ }完成后=>圖形;
還是將整個文檔集再次加載到另一個d3.tsv()。then()會更容易? 重新加載整個數據似乎浪費資源。 造成這一困難的是我必須加載的源數量,將數據整合到一個陣列中(希望)更加方便。
讀取數據后,只需在then
調用中繪制圖形即可:
d3.tsv("file.txt")
.then(data => graph(data)); //data is available to be used at this point
同樣,如果我正確地閱讀了此內容,則說明您正在偵聽要使用load
事件填充的數組,但這僅在加載整個頁面並且與填充數據結構無關時才觸發。 如果除了制圖之外還需要將數據存儲在其他位置,則可以將以上內容修改為:
d3.tsv("file.txt")
.then(data => {
graph(data);
myArray = data;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.