作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这是我第一次使用 Node.js,我遇到了一些问题。
我从 API 获取一些数据,并将它们存储在一个数组中。
然后,我正在执行一些 MongoDB 查询,以了解我在该数组上拥有的数据是否在数据库中。
我想为每次出现的数组使用一个 for 循环,但是当我尝试调用 MongoDB 时,for 循环继续立即增加计数器,而不等待查询和相关响应的结束,我只获取数据最后一次出现(重复)。
我的代码有一部分,因此我总是在最后一次出现时得到控制台相对的“结果”(例如,如果我期望像“1、2、3、4、5”这样的东西,我有'5 5 5 5 5')
我怎样才能确保 for 循环以正确的方式工作?
感谢您的帮助。
for ( counter = 0; counter < array.lenght; counter ++) {
MongoClient.connect(url, function (err, db) {
var query = { name: array[counter] };
db.collection("collectionName").find(query).toArray(function (err, result) {
// Check if 'query' value exist in the database, if yes do some stuff, otherwise do others stuff
console.log(result);
}
)
编辑:为了让大家知道,代码终于可以运行了。谢谢你的帮助。
最佳答案
尝试运行下面的代码。让我知道它是否有效。
let fun = async function () {
for (var counter = 0; counter < array.length; counter++) {
await MongoClient.connect(url, function (err, db) {
var query = { name: array[counter] };
db.collection("collectionName").find(query).toArray(function (err, result) {
// Check if 'query' value exist in the database, if yes do some stuff, otherwise do others stuff
console.log(result);
})
})
}
}
fun();
关于javascript - 如何让node.js和mongoDB中的for循环同步运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47523285/
我是一名优秀的程序员,十分优秀!