将json推送到数组返回undefined

时间:2013-06-01 18:56:53

标签: javascript node.js

我的javascript有点问题。我一直在寻找,但没有运气。所以我有以下json对象:

{
  core: {
      repositoryformatversion: '0',
      filemode: 'true',
      bare: 'false',
      logallrefupdates: 'true'
  },
  'remote "origin"': {
      fetch: '+refs/heads/*:refs/remotes/origin/*',
      url: 'https://github.com/user/repo.git'
  },
  'branch "master"': {
      remote: 'origin',
      merge: 'refs/heads/master'
  }
}

这是我的剧本:

var iniparser = require('iniparser');
var result = [];

iniparser.parse('analytics.js/.git/config', function(err,data){
   result.push(data);
});

console.log(result);

它返回[]。实际上,我想使用result.push(data['remote "origin"'].url)仅推送网址(https://github.com/user/repo.git)。 当我使用console.log(data['remote "origin"'].url)时,它会正确返回网址。

谢谢。

1 个答案:

答案 0 :(得分:1)

您使用的是none-iniparser吗?

如果是这样,parse似乎是异步的(我是通过回调判断的,并且有一个parseSync函数。

这意味着你真的不知道什么时候会调用回调。调用parse后,您的程序会立即移至console.log result,但尚未更改。那么在某个时候,只要parse完成,就会调用解析回调