1
考慮以下片段 - 其試圖跟蹤數據操作通過d3.queue().defer()
發生的進展:何時經由D3隊列()獲得的數據延遲()出現
var data = [];
function analyze(error, f) {
if (error) {
console.log(error);
}
console.log('Inside analyze: f.length=' + f.length);
data.push(f);
}
var q = d3.queue()
.defer(d3.csv, fnames[0])
.await(analyze);
console.log('after queue: data.len=' + data.length);
function updateViz(data2) {
// Do some d3 stuff with data2.. takes some time..
// ..
console.log('Finished updateViz: data2.len=' + data2.length);
}
updateViz(data);
console.log('after updateViz: len=' + data.length);
輸出 - 如在chrome
vieweed JavaScript控制檯是:
那麼接下來:只有適度冗長的操作(udpateViz()
)後數據出現。
問題是:我需要在該方法的開始處可用的數據。更一般地說:可以做些什麼來確定完成queue().defer()
- 以便後續操作可能能夠依賴於存在的數據?
好的!這就說得通了。嘗試一下:我有兩種方法需要鏈接。希望把第一個推遲(chained1).await(chained2) – javadba
我*不能*鏈接功能的工作;( – javadba
這裏是一個很好的例子d3.queue使用:http:// bl。 ocks.org/mapsam/6090056 –