Я программирую фотонный фотон (например, Arduino). Я пытаюсь вызвать переменную из нее, а затем использовать эту переменную, чтобы добавить класс .css в div.Проблемы с использованием обещаний в jQuery/JavaScript. Скрипт, похоже, не ждет
Проблема заключается в том, что переменная продолжает возвращаться в
undefined
на первоначальный вызов. Однако, если я снова назову это через пару секунд, это будет хорошо.
Это API вызов из частиц:
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);
});
Вот моя версия этого:
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);
});
}
Я хотел бы иметь возможность работать с этим как
$(".class").addClass(getVariable("var")
Я довольно новичок в jQuery и Javascript, но я делал тонну чтения на обратных вызовах и обещаниях и не получал нигде. Любая идея, как это сделать?
О господи. Спасибо огромное! Я играл с вариациями вашего первого раздела кода, но никогда не думал использовать обещание для второго раздела. Тьфу. Есть ли способ заставить его работать с чем-то вроде '$ (". Class "). AddClass (getVariable (" var ")'? Ваше решение работает, но просто надеется упростить. В любом случае, спасибо за help – syndac
@syndac - Нет, результат - асинхронный. Вы не можете вернуть результат непосредственно из 'getVariable()'. – jfriend00
Нет проблем. Еще раз спасибо за помощь! – syndac