首先我是Javascript的新手,这是我用这种语言的第一个“项目”,所以我提前为我的新手状态道歉。
在这个项目中,我使用了leaflet和D3,但是我似乎无法让这个函数返回除了“未定义”的其他值。起初我认为我没有正确地从函数中返回结果,所以我尝试在这里复制错误:
然而,这对我起作用了,所以现在我有点迷失在该怎么做的路上。
这是我的代码的简单版本,我试图删除所有似乎不相关的内容并更改名称以使其更易于理解:
$(function () {
...
function getThings(code) {
d3.csv("data.csv", function(data){
for (var i = 0, len = data.length; i < len; i++){
if (data[i].code == code){
alert("return 5!")
return 5;
}
else{
return 0;
}
}
})
}
L.geoJson( features, {
style: function (feature) {
return { opacity: 0, fillOpacity: 0.5, fillColor: "#0f0" };
},
onEachFeature: function(feature, layer){
var test = getThings(5);
alert(test);
...
我一直能够看到“返回5!”的提示,但在alert(test)处我只得到了“未定义”的结果。有人知道我哪里出错了吗?提前致谢!
return
,则test
将被分配一个非 undefined 值(但不是数据)。 - user2864740return d3.csv()
,我们很可能会得到一个 Promise。 - Ayush