我想为Snips.ai编写一个应用程序,该程序执行脚本并返回特定目录内所有脚本的名称。执行似乎有效,但列表无效。我得到的名称作为数组,然后使用.join()创建一个字符串,然后返回它。在fs.readdir函数内部似乎可以正常工作,console.log打印正确的名称,但是在我返回值之后,我总是在该函数之外得到未定义的。未定义的值是空的,我想我的问题是返回正确的值或事后正确使用它。
控制台输出如下:
未定义 Script1 Script2 Script3
我不明白为什么它是未定义的,为什么要在正确的输出之前打印它
withHermes(hermes => {
const dialog = hermes.dialog()
dialog.flow('n01:ExecBash', (msg, flow) => /* Wenn der Intent, der von Hermes übergeben wird, "StartScript" ist wird ein Konsolenbefehl ausgeführt */
{
console.log(msg)
execute('echo "Test" >> /home/pi/test.txt') /**/
flow.end()
return "Der Test Text wurde in die Testdatei geschrieben!"
})
dialog.flow('n01:ReadBashDir', (msg, flow) => /* Wenn der Intent, der von Hermes übergeben wird, "ReadBashDir" ist wird der Scriptordner ausgelesen */
{
console.log(msg)
const entries = fs.readdir('./Scripts/', (err, entries) =>
{
const ArrayString = entries.join(' ')
console.log(ArrayString);
return ArrayString
}); /* der Inhalt, des Ordners in dem die Scripte liegen, wird in ein Array gepackt und anschließend im Log ausgegeben */
flow.end()
console.log(entries);
return "Es stehen" + entries + "zur Auswahl"
})
})