我正在使用 Python 为 Arduino 开发一个 Web 界面。对于自动更新和显示,我使用 JSON。我有一个非常有趣的问题。
如果存在命令,则以下代码将命令发送到 python 函数。然后,无论是否向函数发送了命令,该函数都会通过调用另一个函数来检查来自 Arduino 的更新。
这是我找不到任何解释的原因:在 update() 函数的第一个也是唯一一个条件中,如果我删除了 alert('hey'); 不再调用python函数。但是如果我写了 alert('hey'); 在 JSON 请求之后,它工作正常,调用该函数并且 arduino 获取消息。
任何人都知道为什么?
function update(command=0) {
// if a command is passed, send it
if (command!=0) {
$.getJSON('/action?command='+command);
alert('hey'); // if I remove this, the action function is not called. Why?
}
// read from the read function, no matter what
$.getJSON('/read', {}, function(data) {
if (data.state != 'failure' && data.content != '') {
$('.notice').text(data.content);
$('.notice').hide().fadeIn('slow');
setTimeout(function () { $('.notice').fadeOut(1000); }, 1500);
}
setTimeout(update, 5000); // next update in 5 secs
});
}
update(); // for the first call on page load