2017-05-03 142 views
1

如何調用並使用此函數僅用於1個時間和rhat殺死函數之後?
調用函數:運行一個函數只需一次

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(); 
    } 

這是我的功能,我不循環運行想,我需要發送一個信息,並中止功能。

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

你想只聽一次活動嗎? –

+0

我想要用戶點擊聯繫我們,併發送她的消息,過程完成,因爲在這段代碼中第一次是okey,在接下來的時間後,它可以接收每個按鈕和每個菜單中的消息 –

+0

你究竟是什麼意思?功能?所以它只執行一次,如果你再次調用它什麼也不做? –

回答

2

你只需要改變,bot.onbot.once

這樣,機器人對象將只聽取一次,然後從監聽範圍脫落事件。

+0

你是最棒的。 –