Javascript 将参数传递给q.defer(d3.csv)

Javascript 将参数传递给q.defer(d3.csv),javascript,csv,d3.js,Javascript,Csv,D3.js,如何将参数传递给d3中的q.defer? 我需要在此处传递索引(文件名-d): 有没有办法让d进入等待的所有| 谢谢。仅通过父范围: var myd = data.map(function(d){ q.defer(d3.csv,'https://***/'+d+'.csv', d); return d }) q.awaitAll(function(error, result, d) { if (error) throw error; //how to get

如何将参数传递给d3中的q.defer? 我需要在此处传递索引(文件名-d):

有没有办法让d进入等待的所有|
谢谢。

仅通过父范围:

var myd = data.map(function(d){
    q.defer(d3.csv,'https://***/'+d+'.csv', d); 
    return d
})

q.awaitAll(function(error, result, d) {
    if (error) throw error;
    //how to get the d value here?
    console.log(myd) // myd contains all the d from your map.
});
但是由于在
data.map()
调用中,您已经在使用所有
数据
数据
绑定到映射器函数中的
d
):

编辑:原来的问题不清楚。OP显然希望将结果重新映射回
d
值:

q.awaitAll(function(error, result) {
    if (error) throw error;
    //how to get the d value here?
    result.map(function(res, idx) {
        console.log("original d:" + data[idx].toString())
    }
});
所有文件:

一些额外的阅读材料:


是的,但我需要根据d值得出结果。据我所知,“结果”总是以随机顺序排列的,因为它是一个线程,还是我错了?
results
是您所做的所有延迟的数组
results[0]
对应于
data[0]
对应于
d==1
。谢谢,因为它是异步的,所以结果顺序将是随机的,等待所有延迟完成,并在回调中将每个延迟的结果生成
results
。这类似于jQuery的
.when().done()
q.awaitAll(function(error, result, d) {
    if (error) throw error;
    //how to get the d value here?
    console.log(data) // this is the same `data` from the `data.map()`
});
q.awaitAll(function(error, result) {
    if (error) throw error;
    //how to get the d value here?
    result.map(function(res, idx) {
        console.log("original d:" + data[idx].toString())
    }
});