Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

Ou je suis trop nul ou je suis trop fatigué, mais pourriez vous m'indiquer comment on peut utiliser les éléments de la variable "response" en dehors de la fonction et de la requete http? J'obtiens un objet nul dans mon print...

 

Merci d'avance!

local http = net.HTTPClient();
http:request('http://127.0.0.1:11111/api/devices/57', {
options = {
method = 'GET'
},
success = function(response)      
      fibaro:debug("OK") end,
error = function(err) fibaro:debug("Error: " ..err) end
})

print(response.data)
Posté(e)

Cela est logique, il faut prendre en compte le fait que net.HTTPClient travail en asynchrone, le callback succes peut-être déclenché à  n'importe quel moment, par exemple plusieurs seconde après ton print.

 

C'était juste un rappel car ici ce n'est pas ton problème: En fait, tu ne peux pas utiliser l’objet response en dehors de la fonction success ;)

Posté(e)

Merci, j'ai eut peur d'être devenu complètement nul en prog.

L'objet de cette scène est de mettre àjour le paramètre d'un module. La maj fonctionne bien, par contre il écrase les autres paramètres à0/blanc, du coup j'ai besoin de récupérer ces valeurs avant de faire la maj, c'était l'objet de ce petit script. Si j'ai bien comprit, je vais donc devoir plus ou moins imbriquer mes requêtes/fonctions (ce dont j'ai horreur en fait).

Posté(e)

Non, pas d'imbrication, il suffit de mettre ton code "métier" dans ton callback (fonction success). Si tu n'es pas àl'aise avec le fonctionnement asynchrone c'est le moyen le plus sûr afin de ne pas t’arracher les cheveux :)

De plus dans ton exemple, le paramètre response n'est valable que dans la fonction success (response est définie dans le corp de la fonction).

Posté(e)

Merci Krikoff, c'est bien ce que j'avais comprit au final. Je vais me débrouiller avec ca.

 

@mprinfo : Bah c'est ce que je fais non?... Tu pensais à  autre chose?

×
×
  • Créer...