如何在javascript node.js中为全局变量赋值?
此函数用于从xml加载数据。我希望将此数据用作数组,但我的globalDataxml
未定。
代码:
var fs = require('fs');
var parseString = require('xml2js').parseString;
function loadXml(cb)
{
fs.readFile('data-xml/test_data.xml', function (err, data)
{
parseString(data, function (err, result)
{
cb(result.xml.record);
});
});
}
var globalDataxml = loadXml(function (yourRecods) {
return yourRecods;
});
答案 0 :(得分:1)
就像你的变量一样:
var fs = require('fs');
var parseString = require('xml2js').parseString;
function loadXml(cb) {
fs.readFile('data-xml/test_data.xml', function(err, data) {
parseString(data, function(err, result) {
cb(result.xml.record);
});
});
}
var globalDataxml = null;
loadXml(function(yourRecods) {
globalDataxml = yourRecods;
});
你可以采用你的方式,因为fs.readFile是异步的。
如果你想在之后使用你的变量(总是因为异步)
,这种方式将无效var fs = require('fs');
var parseString = require('xml2js').parseString;
function loadXml() {
return new Promise((resolve, reject) => {
fs.readFile('data-xml/test_data.xml', function(err, data) {
if(err)return reject(err);
parseString(data, function(err, result) {
if(err)return reject(err);
resolve(result.xml.record);
});
});
});
}
loadXml().then(globalDataxml => {
//do what you want with it
}).catch(err => console.log(err));