在 D3版本 7 中加載一個 TopoJson 檔案很簡單:
d3.json("file01.json").then(function(topology) {
要在以前的版本中加載兩個檔案,您可以在版本 6 中使用例如:
Promise.all([
d3.json("file01.json"),
d3.json("file02.json", function(d) {
data.set(d.code, d.pop)
})
]).then(function(loadData){
在版本 4 中,例如:
d3.queue()
.defer(d3.json, "file01.json")
.defer(d3.json, "file02.json", function(d) { data.set(d.code, d.pop); })
.await(ready);
我在版本 7 中都進行了嘗試,并收到了 Promise 或 queue 不是函式的通知。所以我解釋說,在版本 7 中有另一種加載兩個外部檔案的方法。
感謝您提供的任何幫助,盡管在 Internet 上進行了搜索,但直到現在我都找不到。關于版本 3 到 6 的材料很多,但版本 7 的材料要少得多。
uj5u.com熱心網友回復:
d3.json在 d3 v7 中回傳一個承諾,所以你寫的幾乎是正確的。只是第二個引數不是用于操作資料(它是用于將附加選項傳遞給 fetch 呼叫:請參閱fetch() API)。d3.json 使用瀏覽器的內置 fetch() API。
要操作資料,您必須在 then 回呼函式中進行操作。
Promise.all([
d3.json('file01.json'),
d3.json('file02.json')
]).then(function([data01, data02]){
// manipulate data here
// data01
// data02
})
請參閱此代碼筆中的作業示例檢查控制臺以獲取在獲取后記錄的資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/407872.html
標籤:
上一篇:d3.nestrollup,其中鍵是向下鉆取到另一列中的類別的列的類別
下一篇:在2條路徑之間繪制區域
