我有一个带有 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/