javascript - 从数组发送有序数据

标签 javascript telegram-bot

如何从 Telegram Bot 中的数组发送有序数据?

例如,我在数组中有 text1text2text3, 但它像 text3text1text2 一样发送它们,所以不是按原来的顺序。

这是我的代码:

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/

相关文章:

Javascript 不从单选按钮和隐藏框读取值

javascript - 如果存在黑白 html 和头节点,则忽略文本节点?

javascript - 如何使用 javascript/jquery 使用动态 json 数据无缝显示进度

java - Telegram bot webhooks、Tomcat 上的 servlet 和 openshift cloud

telegram - Telegram Bot 共享文本的深层链接是什么?

java - 在 Openshift 上运行 Java 应用程序

javascript - JavaScript 中的 Telegram Web Bots 数据验证

Telegram Bot : Is it possible to get userid using username?

javascript - getElementById 返回 null 但 getElementsByClassName 有效,为什么?

javascript - Jquery 选择 css 类 :before