如何从inquirer.js中获取价值?

时间:2018-03-12 04:18:21

标签: javascript node.js inquirerjs

我正在使用javascript,yargs,inquirer和superagent构建一个小型CLI应用程序。在询问者中,我要求用户输入要在我的应用中使用的里程数。我想在我的应用程序中的其他地方使用该值,但我似乎无法获得返回的值。以下是我最近的尝试。从selectRange返回此值的任何帮助都将受到高度赞赏。

const selectRange = (result) => {
    return inquirer.prompt([{
        type: 'checkbox',
        message: 'Select the range in miles to search',
        name: 'miles',
        choices: ['50', '100','150', '200', '250'] ,
        validate: (result) => {
            if (result.length > 1) {

                return 'Error: You must select 1 choice     only'

            } else {
                return true
            }
        },
        filter: input => {
            return input

        }

    }]).then(input => {
        return input
    })
}



const surroundingCitiesWeather = (location) => {

    const range = selectRange()

    console.log(`Range selected is ${range}`)
}

Here is a pic of my output, mind the last line

1 个答案:

答案 0 :(得分:0)

您的功能正在返回Promise,因此您需要使用它:

const surroundingCitiesWeather = (location) => {
    selectRange().then(range => {
        console.log(`Range selected is ${range}`)
    })
}

如果您使用最新版本的节点,则可以使用async / await更清晰一点:

const surroundingCitiesWeather = async (location) => {
    const { range } = await selectRange()
    console.log(`Range selected is ${range}`)
}