我在向mongodb插入几十条记录的过程中发现一个问题,也就是不知道什么时候插完毕,代码如下:
var tmp1=JsonObj.RECORDS;
collection.insertMany(tmp1, {safe: true}, function (err, result) {
console.log('----111111!');
});
console.log('----22222222!');
发现最先输出的是 “----22222222!”
如何控制必须先输出“-----11111111!”之后才是“------222222!”呢?因为有时候必须得这样做。
初学者诚心求助,谢谢。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
把
console.log('----22222222!');放到回调函数里面,console.log('----111111!');的后面。Promise....
标准的异步问题:(提供几种解决方案)
回调
事件
promise
生成器CO库
Es7 的 async 异步库
用async流程控制
不知道你用的是什么库。
刚翻了下
node-mongodb-native的源码:https://github.com/mongodb/node-mongodb-native/blob/2.1/lib/collection.js其中第516行:
注意这里的
promise: true。也就是说,方法insertMany是支持promise的,再往上看几行:Return a Promise! Return a Promise! Return a Promise! 重要的事情说三遍!!!
也就是说你的代码可以写成:
不好意思,代码没真实在node环境下运行过。如果你有空可以去试试,把结果或问题发出来,我这边更正下 :)。