无法获取正确的返回对象
Cannot get correct return object.
serviceApp.factory('xml2json', function() {
return {
Convert: function(path) {
var fs = require('fs');
var xml2js = require('xml2js');
var parser = new xml2js.Parser();
var json;
fs.readFile(path, function(err, data) {
parser.parseString(data, function(err, result) {
json = result.object.property[9].steps[0].object[27].property[1].property[0].object;
console.log(json);
});
});
console.log(json + '1');
return json;
}
}
});
这是我的服务^^ 无论出于何种原因,第一个控制台日志都可以正常工作,如预期的那样。第二个是未定义的。当我返回 json 时,它返回未定义。我试过计时器,我试过承诺,我试过回调。我不知道如何使它从解析器.parseString() 返回结果;请帮忙。
serviceApp.controller('PPQACtrl', function($scope, SqlConFactory, CreateRequest, EmailService, xml2json) {
var path = '/some/path/to/file.xml'
var myjson = xml2json.Convert(path);
console.log(myjson);
});
由于调用是异步的 - 您可以使用 promise 或回调来返回数据。下面是重构为使用回调的代码示例:
服务:
serviceApp.factory('xml2json', function() {
return {
Convert: function(path, callback) {
var fs = require('fs');
var xml2js = require('xml2js');
var parser = new xml2js.Parser();
var json;
fs.readFile(path, function(err, data) {
parser.parseString(data, function(err, result) {
json = result.object.property[9].steps[0].object[27].property[1].property[0].object;
callback(json);
});
});
}
}
});
和用法:
xml2json.Convert(path, function(json) {
console.log(json);
});
相关文章:
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 通过数组值返回对象
- JavaScript:返回对象的函数
- 为什么document.getElementsByClassName(“className”)返回对象
- 如何返回对象
- Promise没有;t返回对象的数组
- 面料:“;鼠标:向下”;在event.target中未返回对象
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- Javascript:返回对象
- 为什么 javascript 返回对象位置 true 或 false
- 解析查询查找方法返回对象而不是数组
- 来自函数的返回对象在 jQuery 中未从 $.post 定义
- JavaScript 返回对象未按预期工作
- 返回“[对象对象] NaN” - Javascript
- 何时从创建返回对象
- Javascript:接收对象并返回对象中描述的所有数字的列表的函数
- JSDoc:返回对象结构
- node.js请求返回对象
- 返回对象的ECMAScript 6箭头函数
- 如何从控制器返回对象列表并使用JQuery(SpringMVC,ajax)显示它们