Как заставить мои операторы "если еще" работать должным образом в этом файле Node с помощью Inquirer? - PullRequest
1 голос
/ 10 апреля 2019

Я пытаюсь заставить некоторый код отображать определенное сообщение на экране в зависимости от того, какой ответ они дают на вопрос.Это приложение узла, которое использует пакет Inquirer, и каждый раз, когда я запускаю приложение узла, оно возвращается с «неопределенным».

{
        type: "checkbox",
        name: "channels",
        message: "Which of these TV channels would you watch?!",
        choices: ["Investigation Discovery", "CNN", "Fox News", "TLC"]
    }
]).then(function (responses) {
    for(let i = 0; i < responses.channels; i++) {
        if (responses.channels === 0) {
            console.log("You are probably smart");
        }`enter code here`
        else if (responses.channels === 1) {
            console.log("You are probably well informed");
        }
        else if (responses.channels === 2) {
            console.log("You are probably not very well informed");
        }
        else {
            console.log("You are probably an idiot");
        }
    }

Как указывалось ранее, предполагается, что в консоли будет возвращено сообщение в зависимости от того, какой выбор был выбран, но оно возвращается только с "undefined".

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Хорошо, так что мне удалось решить это самому. Вот что мне нужно было сделать:

    if (responses.channels = 1) {
        console.log("You are probably smart");
    }
    else if (responses.channels = 2) {
        console.log("You are probably well informed");
    }
    else if (responses.channels = 3) {
        console.log("You are probably not very well informed");
    }
    else {
        console.log("You are probably an idiot");
    }
0 голосов
/ 10 апреля 2019

Это потому, что вы используете неправильный тип.Флажок позволяет выбрать несколько ответов.

Для вашего случая использования вы должны использовать list или rawlist и массив объектов выбора, чтобы иметь различное значение между тем, что отображается, и тем, что вы хотитеиспользуйте после.

Итак, что-то подобное должно быть тем, что вы ожидали:

const inquirer = require("inquirer");


inquirer
  .prompt([
    {
        type: "list",
        name: "channels",
        message: "Which of these TV channels would you watch?!",
        choices: [{ name: "Investigation Discovery", value: 0 }, { name: "CNN", value: 1 }, { name: "Fox News", value: 2}, { name: "TLC", value: 3}]
    }
  ])
  .then((responses) => {
        if (responses.channels === 0) {
            console.log("You are probably smart");
        }
        else if (responses.channels === 1) {
            console.log("You are probably well informed");
        }
        else if (responses.channels === 2) {
            console.log("You are probably not very well informed");
        }
        else {
            console.log("You are probably an idiot");
        }
});
...