我试图通过使用变量'计数器来改变间隔。
Twitter流正在运行,LED正在闪烁。
我已删除所有Twitter凭据。
非常感谢任何帮助!
这是我的代码:
var Gpio = require('onoff').Gpio;
var Twit = require('twit');
var T = new Twit({
consumer_key: '' // Your Consumer Key
, consumer_secret: '' // Your Co$
, access_token: '' // Your Ac$
, access_token_secret: '' // Your Access $
});
var stream = T.stream('statuses/filter', { track: '#blessed, #peace'})
led = new Gpio(17, 'out'),
counter = 500;
stream.start();
var iv = setInterval(function(){
led.writeSync(led.readSync() === 0 ? 1 : 0);
}, counter);
stream.on('tweet', function(tweet) {
if(tweet.text.indexOf('#blessed') > -1) {
console.log("blessed");
counter += 100;
} else if (tweet.text.indexOf('#peace') > -1) {
console.log("peace");
counter -= 100;
}
});
答案 0 :(得分:0)
一旦您拨打setInterval()
电话,计时器已锁定,您就无法更改。这就是函数的参数是如何工作的:在事实之后改变它们什么都不做。没有绑定到提供的值,数字作为副本传入。
您需要清除并重新设置计时器。 setInterval()
会返回一个句柄,您可以将其传递给clearInterval()
以将其关闭。你已经抓住了它,所以你只需要使用它:
var iv;
function blink(interval) {
if (iv) {
clearInterval(iv);
}
iv = setInterval(function() {
led.writeSync(led.readSync() === 0 ? 1 : 0);
}, interval);
}
然后使用此功能重置它:
counter -= 100;
blink(counter);
确保你不要消极。
答案 1 :(得分:0)
我添加了一个检查计数器和间隔:
<div class="container">
<h2>Hello world!</h2>
<div class="desktop">
this is an extended block only visible on desktop
</div>
<p>
this text is visible from both
</p>
</div>