0
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時,它返回undefined。我試過定時器,我試過承諾,我試過回調。我不知道如何讓這個返回parser.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);
});
'fs.readFile'和'parser.parseString'是「異步, 「所以他們自動返回。 – usandfriends
謝謝你,我已經閱讀並嘗試了很多文章。我仍然在做錯事。 是的,我知道他們是異步並立即返回。我試過強制setTimeout和回調,並承諾。請閱讀我原來的帖子。我對這個實現並不瞭解,爲什麼這些解決方案都不適合我。 –