如何访问 JavaScript 事件回调函数中的变量?
How to access variables that are inside a callback function of a JavaScript event?
我正在尝试使用 csvtojson
将 CSV 文件转换为 JSON。我正在使用 csvtojson
库和 fs
来读取文件。我可以转换它,但是我无法弄清楚之后如何访问变量。我是 javascript 的新手,我认为来自其他语言的技术并没有奏效......我正在从另一个 js 文件调用该函数,并希望能够从 converter.on('end_parsed'...)
函数。下面的代码
'use strict'
const fs = require('fs')
const Converter = require('csvtojson').Converter
exports.myfuncc = function () {
var converter = new Converter({})
var csvEncoding = { encoding: 'utf16le' }
var csvString = fs.readFileSync('C:\Users\jgipe\Desktop\csvs\201508.txt', csvEncoding).toString()
converter.fromString(csvString, function (err, result) {
if (err) { console.log(err) }
})
converter.on('end_parsed', function (jsonArray) {
// Just examples of the data contained in one object
console.log(jsonArray[9]['Date'])
console.log(jsonArray[9]['Package Name'])
console.log(jsonArray[9]['Current Device Installs'])
console.log(jsonArray[9]['Daily Device Installs'])
console.log(jsonArray[9]['Daily Device Uninstalls'])
console.log(jsonArray[9]['Daily Device Upgrades'])
console.log(jsonArray[9]['Current User Installs'])
console.log(jsonArray[9]['Total User Installs'])
console.log(jsonArray[9]['Daily User Installs'])
console.log(jsonArray[9]['Daily User Uninstalls'])
})
}
将回调函数作为 exports.myfuncc 的参数,像这样:
'use strict'
const fs = require('fs')
const Converter = require('csvtojson').Converter
exports.myfuncc = function (callback) {
var converter = new Converter({})
var csvEncoding = { encoding: 'utf16le' }
var csvString = fs.readFileSync('C:\Users\jgipe\Desktop\csvs\201508.txt', csvEncoding).toString()
converter.fromString(csvString, function (err, result) {
if (err) { console.log(err) }
})
converter.on('end_parsed', callback)
}
然后在另一个文件中这样调用它:
exports.myfuncc(function(jsonArray){
// You can access jsonArray...
});
我正在尝试使用 csvtojson
将 CSV 文件转换为 JSON。我正在使用 csvtojson
库和 fs
来读取文件。我可以转换它,但是我无法弄清楚之后如何访问变量。我是 javascript 的新手,我认为来自其他语言的技术并没有奏效......我正在从另一个 js 文件调用该函数,并希望能够从 converter.on('end_parsed'...)
函数。下面的代码
'use strict'
const fs = require('fs')
const Converter = require('csvtojson').Converter
exports.myfuncc = function () {
var converter = new Converter({})
var csvEncoding = { encoding: 'utf16le' }
var csvString = fs.readFileSync('C:\Users\jgipe\Desktop\csvs\201508.txt', csvEncoding).toString()
converter.fromString(csvString, function (err, result) {
if (err) { console.log(err) }
})
converter.on('end_parsed', function (jsonArray) {
// Just examples of the data contained in one object
console.log(jsonArray[9]['Date'])
console.log(jsonArray[9]['Package Name'])
console.log(jsonArray[9]['Current Device Installs'])
console.log(jsonArray[9]['Daily Device Installs'])
console.log(jsonArray[9]['Daily Device Uninstalls'])
console.log(jsonArray[9]['Daily Device Upgrades'])
console.log(jsonArray[9]['Current User Installs'])
console.log(jsonArray[9]['Total User Installs'])
console.log(jsonArray[9]['Daily User Installs'])
console.log(jsonArray[9]['Daily User Uninstalls'])
})
}
将回调函数作为 exports.myfuncc 的参数,像这样:
'use strict'
const fs = require('fs')
const Converter = require('csvtojson').Converter
exports.myfuncc = function (callback) {
var converter = new Converter({})
var csvEncoding = { encoding: 'utf16le' }
var csvString = fs.readFileSync('C:\Users\jgipe\Desktop\csvs\201508.txt', csvEncoding).toString()
converter.fromString(csvString, function (err, result) {
if (err) { console.log(err) }
})
converter.on('end_parsed', callback)
}
然后在另一个文件中这样调用它:
exports.myfuncc(function(jsonArray){
// You can access jsonArray...
});