我想按顺序完成这3项任务 我怎么能这样做? 使用Async / await或promises或任何其他方式
// task 1
ctx.telegram.sendMessage(MasterID, `⭐⭐⭐new order⭐⭐⭐`)
// task 2
for (var key in pricetag) {
if (pricetag.hasOwnProperty(key)) {
if ((pricetag[key] * ctx.session.quantity[key]) != 0) {
ctx.reply(`" ${key} " , " ${ctx.session.quantity[key]} " | " ${ctx.session.totalprice[key].format3dig(0, 3, ',')} " $`)
console.log(pricetag[key] * ctx.session.quantity[key]);
ctx.session.sumtotalprice = ctx.session.sumtotalprice +
ctx.session.totalprice[key];
}
}
}
// task 3
ctx.telegram.sendMessage(MasterID, `⭐⭐⭐end of order⭐⭐⭐`)
非常感谢
答案 0 :(得分:0)
由于sendMessage
会返回一个承诺,您可以使用.then()
等待承诺解决:
ctx.telegram.sendMessage(MasterID, `⭐⭐⭐new order⭐⭐⭐`).then(function(response) {
for (var key in pricetag) {
if (pricetag.hasOwnProperty(key)) {
if ((pricetag[key] * ctx.session.quantity[key]) != 0) {
ctx.reply(`" ${key} " , " ${ctx.session.quantity[key]} " | " ${ctx.session.totalprice[key].format3dig(0, 3, ',')} " $`)
console.log(pricetag[key] * ctx.session.quantity[key]);
ctx.session.sumtotalprice = ctx.session.sumtotalprice +
ctx.session.totalprice[key];
}
}
}
ctx.telegram.sendMessage(MasterID, `⭐⭐⭐end of order⭐⭐⭐`)
});
for
循环是同步的,因此之后没有什么特别的事情要做。