如何正确返回字符串

时间:2019-04-10 16:40:23

标签: node.js

我想为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"
          })

  })

0 个答案:

没有答案