javascript - 在方法中返回变量
问题描述
我有这个计算变量'visitatori_all_musei'的方法'allMuseums()',现在我想以这样一种方式返回这个变量,每次我调用该方法时我都可以给出结果。
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(allMuseums()) 并得到结果。相反,如果我想将它分配给一个变量?例如'var data = allMuseums()'?
解决方案
使用 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
};
有了 Promise,你可以使用这个:
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);
});
};
它返回一个承诺,所以你必须做allMuseums.then(console.log)
推荐阅读
- excel - 如何在不同的用户表单中使用相同的变量(保持其值)?
- java - 成功登录时 CAS 重定向到 URL
- python - 为什么在测试整数时此测试不返回 False
- vb.net - 如何使用vb手动设置一周的开始日期
- python-behave - Python Behave BDD 框架 - 步骤定义跳线
- c - 如何在不使用分号的情况下在 C 中打印“Hello”?
- amazon-s3 - 在 CloudFormation 或 serverless.yml 中提供 OriginAccessIdentity 参考
- python - 如何在html中获取用户管理员的名称
- python - 在 R 中安装 pattern.nlp
- db2-400 - DB2/400 SQL:如何在 Blob 列中插入 PDF 文件?