javascript - 在另一个函数中返回询问者提示的答案
问题描述
我有一个函数,我想用用户选择的类对象做一些事情。我在想,我给他们一些选项,然后在他们选择它之后,我使用字符串来识别对象数组中的类对象,如下所示:
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
在我的查询器函数中粘贴 a ,但它返回未定义,所以我想,也许我可以await
在 my 之外粘贴 a console.log
,但这也没有得到回报。
所以我尝试使用这个答案when
中的方法,但后来我得到了一个错误,“什么时候是一个意外的标识符”。我到底应该把方法放在哪里,还是应该完全使用其他方法?when
解决方案
我想到了!我能够通过颠倒我的策略来做到这一点。我没有调用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);
})
}
这样,我可以在另一个函数中使用这个问题的答案。
推荐阅读
- macros - 如何让宏评估它的一些参数?
- c - 我想将我的代码编译为 32 位系统并拥有以下 make 文件,我该如何正确处理?
- javascript - 将块的结果分配给变量(给出 SyntaxError)
- ruby-on-rails - 实施后
- r - 在拼凑的主标题和情节标题之间添加图例
- django - 将默认 Django 站点名称和域从 example.com 更改为正确的
- python - 如何在与另一个列表具有相同索引的列表中显示最小的 3 个值
- typescript - 在某些页面上隐藏组件 VueJs
- python - 如何使用 Selenium 和 Python 单击带有文本向我发送推送的按钮?
- java - 左/右位移位 - 为什么我们按字节长度移位