我有一个功能,其中我想对用户选择的类对象进行某些操作。我在想,我给他们提供了一些选项,然后在他们选择它们之后,我使用字符串来标识对象数组中的类对象,如下所示:
function askAboutIt() {
var questions = [{
type: 'list',
name: 'theList',
message: "Message",
choices: listArray
}]
inquirer.prompt(questions).then(answers => {
var itemInQuestion = (answers['theList']);
function isPicked(item) {
return item.name === itemInQuestion;
}
var picked = (listArray.find(isPicked));
})
}
基本上在其他函数中,我希望能够调用askAboutIt()
并使其返回picked
。这样,例如,我可以console.log(askAboutIt()),
,也可以创建一个等于askAboutIt().someOtherPropertyofmyListArrayClass.
的变量
我尝试在查询器函数中粘贴return
,但返回的值未定义,所以我想,也许可以将await
粘贴在console.log
之外,但这不是得到回报。
因此,我尝试使用this answer中的when
方法,但随后返回了一个错误,“当是意外的标识符时”。我应该将when
方法放在哪里,还是应该完全使用其他方法?
答案 0 :(得分:0)
我知道了!我能够通过改变策略来做到这一点。我没有在另一个函数中调用askAboutIt()
,而是编写了另一个函数parentFunction(answer)
,并给了它参数answer
。
然后在askAboutIt
中,我调用那个函数,如下所示:
function askAboutIt() {
var questions = [{
type: 'list',
name: 'theList',
message: "Message",
choices: listArray
}]
inquirer.prompt(questions).then(answers => {
var itemInQuestion = (answers['theList']);
function isPicked(item) {
return item.name === itemInQuestion;
}
var picked = (listArray.find(isPicked));
parentFunction(picked);
})
}
这样,我可以在另一个函数中使用这个问题的答案。