gpt4 book ai didi

javascript - 回调函数返回未定义

转载 作者:行者123 更新时间:2023-11-28 03:13:51 29 4
gpt4 key购买 nike

我正在尝试return一个object里面 callback function

在以下情况下,console.log()显示预期结果

var dVizModule = (function(){
let dataset;

function loadData(fileName) {
dataset = d3.csv(fileName, (data) => {
dataset = data;
console.log(dataset);
});
};

return {
loadData: loadData
}

})();

dVizModule.loadData("data/time_scale_data.csv")

但是当我尝试使用return时在callback function故事不同,它回来了 undefined

var dVizModule = (function(){
let dataset;

function loadData(fileName) {
dataset = d3.csv(fileName, (data) => {
dataset = data;
return dataset;
});
// return dataset; or even here!
};

return {
loadData: loadData
}

})();

console.log(dVizModule.loadData("data/time_scale_data.csv"))

最佳答案

由于它是基于回调的工作流程,因此上面的代码将不起作用。 d3.csv 是一个异步函数,您只能通过传递给它的回调来获取结果,因此即使 loadData 也需要遵循相同的模式。您只需要编写这样的代码即可。

var dVizModule = (function(){
function loadData(fileName,callback) {
d3.csv(fileName, (data) => {
callback(data);
});
};
return {
loadData: loadData
}

})();

dVizModule.loadData("data/time_scale_data.csv",(data)=>{
console.log(data);
})

关于javascript - 回调函数返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59829518/

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