Source: modules/answer.js

const LiveQuestionAnswer = require("../assets/LiveQuestionAnswer.js");
const sleep = require("../util/sleep.js");
/**
 * @fileinfo This is the answer module
 * - Loads the answer method
 */
module.exports = function(){

  /**
   * Answer a question
   * @function Client#answer
   *
   * @param {(Number|String|Number[])} choice The answer to the question
   * - defaults:
   * - 1 answer, number: 0
   * - multi answer: [0,1,2,3]
   * - "undefined"
   * @returns {Promise<LiveEventTimetrack>} Resolves when answer is received.
   */
  this.answer = async (choice)=>{
    let wait = Date.now() - this.questionStartTime;
    if(isNaN(wait)){
      wait = 0;
    }
    if(wait < 250){
      await sleep((250 - wait) / 1000);
    }
    return new Promise((resolve, reject)=>{
      this._send(new LiveQuestionAnswer(this,choice),(result)=>{
        if(!result || !result.successful){
          reject(result);
        }else{
          resolve(result);
        }
      });
    });
  };
};