javascript - 为什么不需要等待数据库查询的返回

标签 javascript c# asp.net-mvc database async-await

我在典型的 MVC 结构中设置我的服务器。 Controller 中的函数要求我等待模型中的函数查询我的数据库时给出的 promise 。如果查询返回一个 promise ,为什么我不需要等待它?

//model - why don't I have to make this an async/ await function?
const findUser = (name) => {
  const author = User.findOne({
    where: {
      firstName: name,
    },
  });
  return author;
};

//controller
const getUser = async (ctx) => {
  ctx.body = await messages.findUser(ctx.request.body);
};

最佳答案

User.findOne() 立即返回一个 Promise。该 promise 会立即返回给 getUsergetUser 是等待的内容。

如果您要对 User.findOne()getUser 调用中解析的内容进行任何操作,然后 您必须在 getUserawait

更简单地说,author 是一个错误的变量名。它不代表实际值。相反,它代表了一种值(value)的 promise 。您可以快速获得值(value) promise 。实现它们需要时间。

关于javascript - 为什么不需要等待数据库查询的返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48571905/

相关文章:

javascript - 如何在 Jest 中重置手动模拟

javascript - jQuery - 让 .animate 和 .html 更好地发挥作用

javascript - 单击对话框上的停止页面处理单元按钮

javascript - 使用 momentjs 将日期转换为剩余时间

javascript - 获取快速内存的结果

c# - FileSystemWatcher 类 - 排除目录

c# - WPF:组合框的下拉列表突出显示了文本

c# - HtmlHelper 的 'ViewContext.Controller' 发生了什么?

asp.net-mvc - ASP.NET MVC 下拉列表

javascript - 从 Google 或本地加载 jQuery(如果不在线)