gpt4 book ai didi

javascript - 添加固定参数等待回调

转载 作者:行者123 更新时间:2023-11-29 10:34:57 26 4
gpt4 key购买 nike

我正在尝试使用 d3 的队列、延迟和等待异步加载一些文件。问题是尝试在循环中这样做,并且对于循环中的每个项目,将获取的数据存储在字典中:

var myDictionary = {};

// e.g. hierarchy = ["State", "County"]
hierarchy.forEach(function(geo) {
queue()
.defer(d3.json, 'assets/data/geo/' + geo + '/' + geo + '.json')
.defer(d3.csv, 'assets/data/geo/' + geo + '/' + geo + '_info.csv')
.await(myFunc);
});

function myFunc(error, jsonData, csvData) {
// need access to geo
console.log(geo);

myDictionary[geo].jsonData = jsonData;
myDictionary[geo].csvData = csvData;
}

在 myFunc 中,我想访问 geo 以填充字典中的适当键,但是将它们传递到 .await.myFunc(geo) 中将打印 undefined在 myFunc 中。

我不知道这个问题是与 Javascript 的回调函数有关,还是与 D3 的 await() 或两者有关。

有什么建议吗?

谢谢

最佳答案

你可以使用这个:

function myFunc(geo) {

return function(error, jsonData, csvData) {
// geo available here
console.log(geo);

myDictionary[geo].jsonData = jsonData;
myDictionary[geo].csvData = csvData;
};
};

然后:

var myDictionary = {};

// e.g. hierarchy = ["State", "County"]
hierarchy.forEach(function(geo) {
queue()
.defer(d3.json, 'assets/data/geo/' + geo + '/' + geo + '.json')
.defer(d3.csv, 'assets/data/geo/' + geo + '/' + geo + '_info.csv')
.await(myFunc(geo));
});

关于javascript - 添加固定参数等待回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38406936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com