我想构建自己的数据源以在grafana图中显示数据。现在,我在grafana中测试伪造的简单json,以了解事物在幕后的工作方式。我有这段代码,查询我想在grafana中显示的数据:

query(options) {
    var query = this.buildQueryParameters(options);
    query.targets = query.targets.filter(t => !t.hide);

    if (query.targets.length <= 0) {
      return this.q.when({data: []});
    }

    console.log('query Return: ');
    console.log(this.doRequest({url: this.url + '/query',data: query,method: 'POST'}));
    console.log('\n');

    var teste = this.doRequest({
      url: this.url + '/query',
      data: query,
      method: 'POST'
    });

    console.log('teste Return: ');
    console.log(teste);
    console.log('\n');
    return teste;
  }


而且,我收到该回报:
result of console.log(teste)

例如,如何访问teste。$$ state.value.data [“ 0”]。datapoints [“ 0”]?

如果我尝试访问teste或teste。$$ state,那就可以了。但是当我尝试teste。$$ state.pur或teste。$$ state树中的任何属性时,我得到了未定义的响应。

最佳答案

我非常确定您的请求是异步的,因此要检查结果,您需要使用回调:

var teste = this.doRequest({
    url: this.url + '/query',
    data: query,
    method: 'POST'
}, function(result){
    console.log(result) <-----
});


then如果返回了Promise:

var teste = this.doRequest({
    url: this.url + '/query',
    data: query,
    method: 'POST'
}).then(function(result){
    console.log(result) <-----
});

08-28 03:50