javascript - Node.js - 我应该什么时候做异步什么时候同步

标签 javascript node.js asynchronous synchronization

我对 node.js 的异步特性感到困惑。我正在用它编写一个小项目,但我以前的(同步)编程经验妨碍了我。

我应该如何决定是否/在何处编写异步代码?

例如我有一个带有字段的模型,其中每个字段都有一些验证规则:

model = { title: text_validation, 
  subtitle: text_validation }

text_validation = { max_len: 10,
  required: true,
  url: true }

当我验证模型时,我遍历所有字段以检查规则是否通过 - 这些都是非常快速的函数。

Model.validate = function() {
  validator = {};
  fields = Object.keys(Model);
  fields.forEach(function(field) {
    validator[field_name] = field.validate();
  });
}

Field.validate = function() {
  validator = [];
  rules.forEach(function(rule) {
    if (rule is not valid)
      validator.push(rule)
  });

  return validator;
}

我应该在如此短而快速的迭代中使用回调吗?

这里的限制在哪里? node.js 应该始终异步还是我可以允许同步循环或 w/e 如果它足够快?请尽可能引用何时何地使用同步/异步的示例。

最佳答案

你可能不应该。在大多数情况下,只有在等待来自应用程序外部的东西(主要是文件、数据库和网络操作)时才需要异步逻辑。异步延迟应用程序内代码不会给您带来任何性能优势,因为您的代码仍然需要在某些时候运行。

关于javascript - Node.js - 我应该什么时候做异步什么时候同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11226026/

相关文章:

node.js - 在docker-compose中运行命令

node.js - Express.js 大 header 大小 400 错误请求

JavaScript:简单的异步问题

multithreading - 如何在不等待的情况下从 channel 获取值

javascript - 如何使用react获取html格式的表格?

javascript - 在 Next.js 版本 13 中,如果根布局必须始终是服务器端组件,如何将 prop 传递给根布局中的组件?

node.js - 平均堆栈 : How to handle internationalization in front end error messages?

java - 异步数据库库是如何实现的?

javascript - 在 Angular js 中单击按钮时动态生成 HTML

javascript - 在 Reactjs 中使用 'this' 过滤器