首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从数组发送有序数据

从数组发送有序数据
EN

Stack Overflow用户
提问于 2017-04-22 07:26:56
回答 2查看 173关注 0票数 4

如何从电报机的数组中发送有序数据?

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

这是我的密码:

代码语言:javascript
复制
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);
      }
   }
}

该函数的调用如下:

代码语言:javascript
复制
sendAllText(msg, opts);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-22 07:33:41

根据文档sendMessage返回一个承诺:使用它,您可以知道消息何时发送,然后发送下一个消息,...etc:

代码语言:javascript
复制
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));
      }
   }
}

或者,您可以将所有消息加入到一个消息中,并且只发送合并的消息。

票数 2
EN

Stack Overflow用户

发布于 2017-04-22 08:32:19

这里是trincot回答的另一个版本,试图提高可读性。

代码语言:javascript
复制
function sendAllText(msg, opts) {
  var textArr = locale.keyboards[msg.text].text;
  var promise = Promise.resolve();

  if (textArr.length) {
    textArr.forEach(function(value) {
      promise.then(function() {
        bot.sendMessage(msg.chat.id, value, opts);
      });
    });
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43556509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档