如何从 Telegram Bot 中的数组发送有序数据?
例如,我在数组中有 text1
、text2
、text3
,
但它像 text3
、text1
、text2
一样发送它们,所以不是按原来的顺序。
这是我的代码:
function sendAllText(msg, opts) {
if (locale.keyboards[msg.text].text) {
var i,j,tempstring;
for (i=0,j=locale.keyboards[msg.text].text.length; i<j; i++) {
tempstring = locale.keyboards[msg.text].text[i];
bot.sendMessage(msg.chat.id, tempstring, opts);
}
}
}
函数是这样调用的:
sendAllText(msg, opts);
最佳答案
根据documentation , sendMessage
返回一个 promise :有了这个你可以知道消息何时发送然后发送下一个,...等:
function sendAllText(msg, opts) {
if (locale.keyboards[msg.text].text) {
var i,j,tempstring, promise;
promise = Promise.resolve();
for (i=0,j=locale.keyboards[msg.text].text.length; i<j; i++) {
tempstring = locale.keyboards[msg.text].text[i];
promise = promise.then(bot.sendMessage.bind(bot,msg.chat.id, tempstring, opts));
}
}
}
或者,您可以将所有消息合并为一个,然后只发送合并后的消息。
关于javascript - 从数组发送有序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43556509/