如何从电报机的数组中发送有序数据?
例如,我有一个数组中的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);发布于 2017-04-22 07:33:41
根据文档,sendMessage返回一个承诺:使用它,您可以知道消息何时发送,然后发送下一个消息,...etc:
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));
}
}
}或者,您可以将所有消息加入到一个消息中,并且只发送合并的消息。
发布于 2017-04-22 08:32:19
这里是trincot回答的另一个版本,试图提高可读性。
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);
});
});
}
}https://stackoverflow.com/questions/43556509
复制相似问题