2017-07-28 6 views
1

Ich möchte meine eigene Datenquelle erstellen, um Daten in einem Grafana-Diagramm anzuzeigen. Jetzt teste ich den gefälschten einfachen JSON in Grafana, um herauszufinden, wie die Dinge hinter den Kulissen funktionieren. Ich habe diesen Code, der die Daten Ich möchte zeigen in grafana Abfrage:Entwickeln Grafana Datasource

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; 
    } 

Und ich erhalten, dass die Rückkehr. result of console.log(teste)

Wie kann ich den Zugriff teste $$ state.value.data [ "0"]. Datenpunkte ["0"] zum Beispiel?

Wenn ich versuchte, teste oder teste zuzugreifen. $$ Zustand, das ist in Ordnung. Aber wenn ich teste. $$ state.pur oder irgendwelche Attribute in der teste. $$ state tree habe ich eine undefined Antwort bekommen.

Antwort

2

Im ziemlich sicher, dass Ihre Anfrage ist async, so die Ergebnisse, die Sie einen Rückruf verwenden müssen, um zu überprüfen:

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

oder then, wenn ein Versprechen zurückgegeben:

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