CoffeeScript Hubot help: получение данных из функции
Я новичок, нуждающийся в помощи Hubot/CoffeeScript.
У меня есть несколько ответов, которые будут получать данные из одного источника, но использовать и отвечать на разные части полезной нагрузки. Например...
module.exports = (robot) ->
robot.hear /score/i, (msg) ->
score = getScore(today)
msg.send "today's score is " + score
robot.hear /yesterday's score/i, (msg) ->
score = getStore(yesterday) ->
msg.send "yesterday's score was " + score
Процесс создания URL для данных оценки включает поиск текущего месяца, дня и года. Я не хочу делать это более одного раза, но у меня будет много ответов, подобных приведенным выше, которые используют одни и те же данные. Я ожидал, что смогу сделать это.
getScore = (day) ->
#build the url and get the data set
#pick the right piece of data based on the day variable and assign it to score'
Я думаю, это не работает, потому что это асинхронно. Но выполнение msg.send из функции getScore не работает. Итак, как мне сделать это, чтобы мне не пришлось повторять код getScroe в каждом разделе robot.hear?
Спасибо!
1 ответ
Решение
Псевдокод:
getScore = (day, callback) ->
# get the score...
callback(score)
robot.hear /yesterday's score/i, (msg) ->
getScore "yesterday", (score) ->
msg.send "yesterday's score was " + score