javascript - 我如何使用 var out of model.find(), Mongoose
问题描述
我想使用 varbot_man
如何传递到函数外。
var bot_man = ''
Post.find({ title: 'bot_status' }, function (err, author) {
if (err) throw err
bot_man = author[0].body
console.log(author[0].body) //output => 'on'
})
console.log(`result = ${bot_man}`) // result =
结果是''
result =
解决方案
Post.find
是一个异步函数。当您使用回调调用它时,它会延迟回调的执行,直到结果准备好(将来的某个地方)并立即进入下一行。因此bot_man
在 中评估时仍然是一个空字符串console.log('result = ${bot_man}')
。
要获得结果,您最好制作函数async
并将其重写为:
let author = await Post.find({ title: 'bot_status' }).exec()
let bot_man = author[0].body
console.log(`result = ${bot_man}`)
尽管对于生产代码,它仍然缺乏一些健全性检查。是否author
不为空或为空以及错误处理。我没有将它们包含在代码段中,以免使代码复杂化。
推荐阅读
- google-search - robots.txt 中的 /somedir/ 和 /somedire/* 有什么区别?
- amazon-web-services - 为什么要在 AWS SQS 的 DLQ 中发送消息
- git - 对 git 子模块和 .git 文件夹感到困惑
- asp.net-core - 如何在 ASP.NET Core MVC Web 应用程序中使用 UserCredential?
- html - 除非在页面底部,否则如何使页脚在滚动时不可见?
- android - 等待设备时出错:AVD Galaxy_Nexus_API_30 的模拟器进程被杀死
- java - JAVA SPRING:查询未返回唯一结果:
- math - awk 浮点不精确
- ios - Ionic 5 - API 请求在浏览器上工作,而不是在模拟的 IOS 上
- python - 递归查找目录文件计数