Javascript 方法中的返回变量
我有一个方法'allmuses()'计算变量'visitatori_all_musei',现在我想以这样的方式返回这个变量,每次调用该方法时,我都可以给出结果Javascript 方法中的返回变量,javascript,html,Javascript,Html,我有一个方法'allmuses()'计算变量'visitatori_all_musei',现在我想以这样的方式返回这个变量,每次调用该方法时,我都可以给出结果 function allMuseums() { var nomeFile = "dati_musei.csv"; var mese_anno = []; d3.dsv(";", nomeFile, function(d) { return {
function allMuseums() {
var nomeFile = "dati_musei.csv";
var mese_anno = [];
d3.dsv(";", nomeFile, function(d) {
return {
Museo: d.Museo,
Ingresso: d.Ingresso,
Anno: d.Anno,
Mese: d.Mese,
Visitatori: d.Visitatori
}
}).then(function(data) {
var visitatori_all_musei = filtraggio(data);
});
};
例如,我想执行console.log(allmuseurs())并获得结果。
如果我想把它赋给一个变量?例如,“var data=allmuseum()”?对于ES6 async/await,您可以使用:
async function allMuseums() {
var nomeFile = "dati_musei.csv";
var visitatori_all_musei;
var mese_anno = [];
await d3.dsv(";", nomeFile, function(d) {
return {
Museo: d.Museo,
Ingresso: d.Ingresso,
Anno: d.Anno,
Mese: d.Mese,
Visitatori: d.Visitatori
}
}).then(function(data) {
visitatori_all_musei = filtraggio(data);
});
return visitatori_all_musei
};
function allMuseums() {
var nomeFile = "dati_musei.csv";
var mese_anno = [];
return d3.dsv(";", nomeFile, function(d) {
return {
Museo: d.Museo,
Ingresso: d.Ingresso,
Anno: d.Anno,
Mese: d.Mese,
Visitatori: d.Visitatori
}
}).then(function(data) {
return filtraggio(data);
});
};
有了承诺,您可以使用:
async function allMuseums() {
var nomeFile = "dati_musei.csv";
var visitatori_all_musei;
var mese_anno = [];
await d3.dsv(";", nomeFile, function(d) {
return {
Museo: d.Museo,
Ingresso: d.Ingresso,
Anno: d.Anno,
Mese: d.Mese,
Visitatori: d.Visitatori
}
}).then(function(data) {
visitatori_all_musei = filtraggio(data);
});
return visitatori_all_musei
};
function allMuseums() {
var nomeFile = "dati_musei.csv";
var mese_anno = [];
return d3.dsv(";", nomeFile, function(d) {
return {
Museo: d.Museo,
Ingresso: d.Ingresso,
Anno: d.Anno,
Mese: d.Mese,
Visitatori: d.Visitatori
}
}).then(function(data) {
return filtraggio(data);
});
};
它返回一个承诺,因此您必须执行
allmuseum。然后(console.log)
返回承诺和回调值:
function allMuseums() {
var nomeFile = "dati_musei.csv";
var mese_anno = [];
//return here
return d3.dsv(";", nomeFile, function (d) {
return {
Museo: d.Museo,
Ingresso: d.Ingresso,
Anno: d.Anno,
Mese: d.Mese,
Visitatori: d.Visitatori
};
}).then(data) {
return filtraggio(data);//return here
});
};
使用异步/等待:
async function allMuseums() {
let nomeFile = "dati_musei.csv";
let mese_anno = [];
let data = await d3.dsv(";", nomeFile, function (d) {
return {
Museo: d.Museo,
Ingresso: d.Ingresso,
Anno: d.Anno,
Mese: d.Mese,
Visitatori: d.Visitatori
};
});
return filtraggio(data);
};
记录输出:
allMuseums().then(console.log);
任务和其他事项:
allMuseums().then(data => {
//do something here
let myvar = data;
});
在启用
allmuses()
之前,您不能执行console.log(allmuses())
async@Danny检查代码“console.log(allmusemuses())”是否返回undefined@Danny函数返回一个承诺,而不是未定义的承诺。在任何情况下,你都必须打开这个值。我在几件事情的中间,完全写错了代码,所以我更新了我的答案来更好地满足你的需要。@克里斯坦利检查你的异步/等待实现,如果我想把它分配给变量?例如“var data=allmuses()”?如果我想将其分配给变量?例如“var data=allmuses()”?