无法从nodejs中的api解析JSON数据

时间:2016-08-30 18:58:45

标签: javascript json node.js

我试图让这个工作,但我现在不知道它为什么不运作。



//require the poloniex library
var plnx;
var currenciesJSON;
if (plnx = require('plnx')){
  console.log("Poloniex library intialized.");
}
//

a = 0;
setInterval(function() { intervalFunction() }, 1000);


function intervalFunction(){

  plnx.returnCurrencies({}, function(err, data) {
    currenciesJSON = data;
    console.log(err);
    console.log(currenciesJSON);

  });

  var currenciesOBJ = JSON.parse(currenciesJSON);

  a++;
  console.log("Check #"+a+" complete.");
}




我收到了以下错误:

[nodemon] starting `node main.js`
Poloniex library intialized.
undefined:1
undefined
^
SyntaxError: Unexpected token u

at Object.parse (native)
at intervalFunction (E:\CODING\nodejs\main.js:22:28)
at null.<anonymous> (E:\CODING\nodejs\main.js:10:26)
at wrapper [as _onTimeout] (timers.js:265:14)
at Timer.listOnTimeout (timers.js:110:15)

[nodemon] app crashed - waiting for file changes before starting...

1 个答案:

答案 0 :(得分:1)

您尝试在分配变量之前解析变量的值。 plnx.returnCurrencies()是异步的,所以

var currenciesOBJ = JSON.parse(currenciesJSON)

将(最初)等同于

var currenciesOBJ = JSON.parse(undefined)

这相当于(由于类型强制)

var currenciesOBJ = JSON.parse('undefined')

因此关于字符'u'

的SyntaxError错误

plnx.returnCurrencies()回调被调用至少一次之前,这可能只是一个问题,因为那时将定义currenciesJSON