node.js - 返回方法中仅显示未定义。如何获取回调?

标签 node.js ecmascript-6

我有一个带有 forEach 循环的方法。

这工作正常并显示结果列表。

这是代码:

test() {

  os.cpus().forEach(el => {
    if (el.model.search('Intel') === 0) {
      return el.model.match(/i(.*)-/)[1];
    }
  });

}

forEach 有一个返回值,并且该方法返回未定义。

我知道我需要执行回调,但我只是不知道如何在此代码中执行此操作。

如何让 test() 返回结果?

最佳答案

改用.find,如果找到匹配项,则执行.match(操作:

test() {
  const foundEl = os.cpus().find((el) => el.model.search('Intel') === 0);
  if (foundEl) {
    return foundEl.model.match(/i(.*)-/)[1];
  }
}

由于 el.model 看起来像是一个字符串,因此使用 startsWith.search 更好:

test() {
  const foundEl = os.cpus().find((el) => el.model.startsWith('Intel'));
  if (foundEl) {
    return foundEl.model.match(/i(.*)-/)[1];
  }
}

您通常必须对异步操作使用回调。对于同步操作(例如这个),您可以简单地返回值。

关于node.js - 返回方法中仅显示未定义。如何获取回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54621581/

相关文章:

node.js - 如何理解Node.js事件循环

javascript - 在带有 async、await 的数组映射函数中使用类的 `this` 对象 - Nodejs、Javascript

javascript - 在 ES6 中编写映射/集合的更简单方法(编译器或语法糖?)

javascript - Webpack 从 %appdata% 导入

javascript - 在 Javascript 中允许命名参数或位置参数

node.js - 使用 Sequelize : when will the promise complete? 创建多部分数据库对象

javascript - react /nextJS : How to debug different nodes of SSR react application?

node.js - NodeJS 中多个 fetch 命令的 Keepalive

javascript - 渲染后无法更新表的数据

javascript - 如何计算任意两个圆SVG的边缘的最小距离