[英]How do you gain access to global variables and functions from Javascript scripts imported from index.html and use them in a component?
[英]Javascript How to not to use global variables when creating arrays to access from different functions
我用Papa Parse读取了一些数据,然后回调结果以unpack
。 我希望能够在其他函数中使用创建的数组。 (类似console.log(unpack(data))
之外unpack
。
我如何称呼阵列?
//read data from csv
function parseData(file, callback) {
Papa.parse(file, {
download: true,
complete: function(results) {
callback(results.data);
}
});
}
// want to use the created arrays in other functions.
function unpack(data) {
var locations = [];
var bsis = [];
var lngs = [];
var lats = [];
for (var i = 0; i < data.length; i++) {
locations.push(data[i][2]);
bsis.push(data[i][3]);
lats.push(data[i][4]);
lngs.push(data[i][5]);
}
return [locations, bsis, lats, lngs];
}
我用
parseData("data/Runs/csvs/csvs_with_latlon/ShelterRun1.csv", unpack);
当您有回调时,此时需要处理它。
如果您不想使用全局变量,则只需要无限期地嵌套函数即可:
const A = (a, callback) => callback(a+5) const B = (r, callback) => callback(r + 5); A(5, (r) => B(r, console.log))
没有一种方法可以仅从回调中返回它。
就是说,您不必真正拥有全球顶级水平。 它可以是另一个函数内部的“全局”:
const A = (a, callback) => callback(a+5) const B = (r, callback) => callback(r+5) const run = () => { let result; A(5, r => B(r, r => { result = r })); setTimeout(() => console.log(result), 50); } run()
就是说,由于回调是异步模式,因此您不能强制异步是同步的,因此要在回调之外使用全局变量,您仍然必须具有某种等待或其他异步模式来检查结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.