javascript - 如何使函数等待异步函数在 Node js中解析?

标签 javascript node.js

<分区>

我是 node js 的新手,之前从未使用过 promises,所以我将不胜感激任何建议。 我正在使用异步等待函数逐行读取 .txt 文件,它返回一个数组。

async function processLineByLine() {
  const fileStream = fs.createReadStream('input.txt');
  const array = [];
  const rl = readline.createInterface({
    input: fileStream,
    crlfDelay: Infinity
  });

  for await (const line of rl) {
    array.push(line)
  }

  return array
}

我想使用这个数组作为参数创建一个类的新实例,如下所示:

let variableName = new ClassName(array)

这样我就可以在这个对象实例上调用函数并操纵它的状态。 我试过这样做:

async function input() {
  var result = await processLineByLine();
  return result
}

let variableName = ClassName(input())
variableName.someFunction()

但它失败了,因为我试图访问的状态是未定义的,并且 console.log(input()) 显示 promise pending。

最佳答案

您需要将所有代码放在await之后:

async function input() {
  var result = await processLineByLine();
  let variableName = ClassName(result)
  variableName.someFunction();
}

input().catch(console.error);

关于javascript - 如何使函数等待异步函数在 Node js中解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59343824/

相关文章:

javascript - 改变滚动图像

php - 将 PHP 变量传递给 Javascript window.location

node.js - 如何: Use ejs without express

node.js - Nestjs:如何构建 nestjs 应用程序并生成 dist 文件夹?

node.js - 保存附件 NodeJS

node.js - Openshift (node.js) 无法安装 jsdom

javascript - 正则表达式查找字符串中不匹配的单词

javascript - 访问 Angular Directive(指令)中的嵌套节点

javascript - 对于通过 Angular $http 发送的 JSON 对象属性,PHP 显示 "{"或 "["

javascript - 通过 AJAX 渲染 View