Je suis en train de programmer un photon de particules (comme un Arduino). J'essaye d'appeler une variable de lui et puis utilise cette variable pour ajouter une classe .css à un div.Avoir des problèmes pour utiliser les promesses dans jQuery/JavaScript. Le script ne semble pas attendre
Le problème est que la variable revient sans cesse comme
undefined
sur l'appel initial. Cependant, si je l'appelle encore quelques secondes plus tard, cela fonctionne très bien.
C'est l'appel API de particules:
particle.getVariable({ deviceId: 'DEVICE_ID', name: 'temp', auth: token }).then(function(data) {
console.log('Device variable retrieved successfully:', data);
}, function(err) {
console.log('An error occurred while getting attrs:', err);
});
Voici ma version:
function getVariable(varName) {
particle.getVariable({ deviceId: device_ID, name: varName, auth: accessToken }).then(function(data) {
return data.body.result;
}, function(err) {
console.log('An error occurred while getting variable:', err);
});
}
Je voudrais être en mesure de travailler avec cela comme
$(".class").addClass(getVariable("var")
Je suis assez nouveau pour jQuery et Javascript, mais j'ai fait beaucoup de lecture sur les callbacks et les promesses et je n'arrive nulle part. Une idée de comment accomplir cela?
Oh mon Dieu. Merci beaucoup! J'avais joué avec des variantes de votre première section de code, mais je n'avais jamais pensé utiliser une promesse pour la deuxième section. Pouah. Y at-il un moyen de le faire fonctionner avec quelque chose comme '$ (". Class "). AddClass (getVariable (" var ")'? Votre solution fonctionne, mais en espérant simplifier. – syndac
@syndac - Non, le résultat est asynchrone Vous ne pouvez pas renvoyer le résultat directement à partir de 'getVariable()' – jfriend00
Pas de problème Merci encore pour l'aide! – syndac