2017-05-03 6 views
1

Wie kann ich diese Funktion aufrufen und nur für 1 Zeit und nach Beenden der Funktion verwenden?
Aufruf der Funktion:Eine Funktion nur einmal ausführen

else if (msg.text == ["contact us"]) { 
     const opts = { 
     reply_to_message_id: msg.message_id, 
     reply_markup: JSON.stringify({ 
      keyboard: arrangeKeyboard(locale.keyboards[msg.text].childs, 2, msg), 
      resize_keyboard: true, 
      one_time_keyboard: true 
     }) 
     }; 
     bot.sendMessage(msg.chat.id, "Please Write your Messages:", opts); 
     getmessage1(); 
    } 

Dies ist meine Funktion und ich möchte nicht in einer Schleife laufen, muss ich eine Nachricht senden und Funktion zu töten.

var getmessage = async() => { 
    // Listen for any kind of message. There are different kinds of messages. 
    await new Promise((resolve, reject) => { 
    bot.on('message', (msg) => { 
     if (!locale.keyboards[msg.text] && 
     !msg.text.includes("previous button")) { 
     console.log("user message is: " + msg.text) 
     const opts = { 
      reply_to_message_id: msg.message_id, 
      reply_markup: JSON.stringify({ 
      keyboard: arrangeKeyboardWithOut(locale.keyboards["/start"].childs, 2, msg), 
      resize_keyboard: true, 
      one_time_keyboard: true 
      }) 
     }; 
     bot.sendMessage(msg.chat.id, ' your message recieved', opts); 
     } 
     resolve(true); 
    }); 
    }); 
    return 
} 

var getmessage1 = async() => { 
    await getmessage(); 
} 
+0

Möchten Sie nur einmal auf ein Ereignis warten? –

+0

Ich möchte, wenn Benutzer geklickt, um uns zu kontaktieren, und senden Sie ihre Nachricht, Prozess beendet, Da in diesem Code zum ersten Mal ist okey, nach Ablauf der Zeit, kann es Nachricht in jeder Tasten und jede Menüs erhalten –

+0

Was genau meinst du mit kill a Funktion? Es wird also nur einmal ausgeführt und wenn Sie es erneut aufrufen, tut es nichts? –

Antwort

2

Sie müssen nur ändern, bot.on-bot.once

Auf diese Weise das Bot-Objekt auf das Ereignis nur einmal hören und dann vom Hörer Umfang abgelöst.

+0

Sie sind der Beste. –

Verwandte Themen