我想按顺序完成这些任务,但结果不按顺序,就像 2 3 10 9 1 4 6 5 7 8
该 API 来自NodeJS工具包电报
bot.hears('numbers', (ctx) => {
ctx.reply("1")
ctx.reply("2")
ctx.reply("3")
ctx.reply("4")
ctx.reply("5")
ctx.reply("6")
ctx.reply("7")
ctx.reply("8")
ctx.reply("9")
ctx.reply("10")
})
.then() 将解决我的问题,但我对 for 循环有问题 .then() 在这里不起作用
var x=[1,2,3,4,5,6,7,8]
for (var key in x) {
ctx.reply(`x`, Extra.HTML().markup((m) =>
m.inlineKeyboard([
m.callbackButton(`A`, `C`),
m.callbackButton(`B`, `D`)
])
)) .then(() => ctx.reply("*****************"))
}
这不是真正的代码,var x 是一个复杂的对象,A,B,C,D 与 x 相关,我只是简化了代码
//// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ~ # In The Name Of God # ~ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \\\\
//// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Defenitions , Variables <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \\\\
const Telegraf = require('telegraf')
const { Extra, Markup } = require('telegraf')
var token = '423782049:AAEvytBA8RtllgnCm_GFMfeP4ttTz6qsAGA';
const bot = new Telegraf(token)
var request = require('request');
var inputdevices;
var inputdevicesstatus;
//// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Start Command <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \\\\
bot.command('start', (ctx) => {
ctx.reply("به خانه هوشمند خوش آمدید")
.then(() => ctx.reply('گزینه مورد نظر رو از منو انتخاب کنید', Markup
.keyboard([
['کلید ها', ' سناریو'],
])
.oneTime()
.resize()
.extra()
))
})
//// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hears کلید ها <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \\\\
bot.hears('کلید ها', (ctx) => {
ctx.reply("1")
.then(() => ctx.reply("2"))
.then(() => ctx.reply("3"))
.then(() => ctx.reply("4"))
.then(() => ctx.reply("5"))
.then(() => ctx.reply("6"))
.then(() => ctx.reply("7"))
.then(() => ctx.reply("8"))
.then(() => ctx.reply("9"))
.then(() => ctx.reply("10"))
var x=[1,2,3,4,5,6,7,8]
for (var key in x) {
ctx.reply(`x`, Extra.HTML().markup((m) =>
m.inlineKeyboard([
m.callbackButton(`A`, `C`),
m.callbackButton(`B`, `D`)
])
)) .then(() => ctx.reply("*****************"))
}
})
bot.startConversation(
)
//// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Action خاموش کلید <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \\\\
bot.action(/خاموش کلید/, (ctx) => {
//console.log(ctx.match.input)
var idxnumber = ctx.match.input.substring(ctx.match.input.indexOf('<%>'), ctx.match.input.lastIndexOf('<%>'))
idxnumber = idxnumber.replace(/<%>/g, '');
console.log(idxnumber)
var switchname = ctx.match.input.substring(ctx.match.input.indexOf('<#>'), ctx.match.input.lastIndexOf('<#>'));
switchname = switchname.replace(/<#>/g, '');
console.log(switchname)
request(`http://127.0.0.1:8080/json.htm?type=command¶m=switchlight&idx=${idxnumber}&switchcmd=Off`, function (error, response, body) {
if (error == null) {
inputdevicesstatus = JSON.parse(body)
if (inputdevicesstatus.status == "OK") {
ctx.reply(`کلید ${switchname} خاموش شد`)
}
else {
ctx.reply(`در خاموش شدن ${switchname} اختلال به وجود آمده است`)
}
}
else {
console.log("ارتباط با دیتابیس برقرار نشد ، لطفا دوباره تلاش کنید");
ctx.reply("ارتباط با دیتابیس برقرار نشد ، لطفا دوباره تلاش کنید")
}
})
})
//////////////////
bot.startPolling()