2017-07-28 1 views
1

Je veux créer ma propre source de données pour afficher les données dans un graphique grafana. Maintenant, je teste le faux JSON simple dans Grafana, pour comprendre comment les choses fonctionnent dans les coulisses. J'ai ce code, qui interroge l'émission I de données veux en grafana:Développement de la source de données 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; 
    } 

Et, je reçois ce retour. result of console.log(teste)

Comment puis-je accéder au $$ state.value.data teste [ "0"]. Datapoints ["0"] par exemple?

Si j'essayais d'accéder à l'état teste ou teste. $$, c'est bon. Mais quand j'essaye teste. $$ state.pur ou n'importe quels attributs dans l'arbre d'états de teste. $$ j'ai reçu une réponse undefined.

Répondre

2

Im tout à fait sûr votre demande est async, afin de vérifier les résultats que vous devez utiliser un rappel:

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

ou then si une promesse est retourné:

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