在查看了 Botkit 的文档后,我没有看到机器人在特定时间自行向频道发送消息的方法。我尝试做的是为 .startRTM 函数提供一个回调函数,该函数在某些时候执行我希望它执行的操作,但是调用是异步的,以从另一个 API 检索信息。有没有比把所有东西都放在while(1) {}
电话里更好的方法来解决这个问题?如果没有,我怎样才能让 r.getHot 回调成功,因为 JS 在主线程上运行,所以它会跳过回调函数。变量 r 来自 snoowrap 库。
var bot = controller.spawn({
token: process.env.slacktoken,
incoming_webhook: {
url: process.env.webhookurl
}
}).startRTM(function(err, bot, payload) {
if (!err) {
while(1){
for (var i = 0; i < allowableTimes.length; i++) {
if (new Date().getTime() == allowableTimes[i].getTime()) {
r.getHot('aww', {limit: 1}).then(function(res){
var url = res[0].url;
var title = res[0].title;
console.log(url);
console.log(title);
bot.sendWebhook({
username: "bawwt",
icon_emoji: ":smile_cat:",
text: "<" + url + "|" + title + ">",
channel: "#random"
});
});
}
}
}
}
});