【发布时间】:2017-04-28 04:46:18
【问题描述】:
我目前正在开发一个带有 javascript、node 和 twit 包的 twitter 机器人。我已经设置了一个计时器和一个随机选择功能,所以我的目标是机器人每 60 秒发一次推文,并从我的数组中选择一个随机句子。当我单独测试这两个位(计时器或随机函数)时,它们可以工作,但由于某种原因,我不能让它们一起工作。 我试图为 getRandomSentence() 函数声明一个变量(如 var tweet = getRandomSentence(tweet)),但随后我会收到此错误 return sentence[index]; ^
TypeError: 无法读取未定义的属性“NaN”
我上传的代码现在可以运行,但计时器似乎不起作用。
// timer
setInterval(getRandomSentence, 1000*60)
// random
var sentences = [
'sentence1',
'sentence2',
'sentence3.',
'sentence4',
'sentence5',
'sentence6'
],
maxSentences = sentences.length;
function getRandomSentence() {
var index = Math.floor(Math.random() * (maxSentences - 1));
return sentences[index];
}
// tweets
//
T.post('statuses/update', { status: getRandomSentence()}, tweeted);
function tweeted (err, data, response) {
if (err) {
console.log(err);
}
else {
console.log("It works.");
}
}
如果有人可以在这里帮助我,我将不胜感激!我仍然是一个绝对的新手。
【问题讨论】:
-
错误很明显 -
T is not defined -
@JamesHill 我认为他们只是没有包含 T 的代码。句子数组后是否有语法错误?逗号在那里做什么?
-
他正在声明一个数组和 int 内联。没关系。不是最易读的方式,但这不是问题。
-
@Aaron 当然哈哈。压痕把我扔了
-
@JamesHill T 不是问题,问题是 setInterval 和我的 getRandomSentence 函数不能一起工作,我不知道为什么。
标签: javascript arrays node.js bots