节点.js异步数组的安全性
node.js safety of asynchronous array
var docs = [];
server.on('add', function(item){
docs.push(item);
});
setInterval(function(){
save(docs);
}, 3000);
var save = function(array) {
var items = array.slice(0); // copy array
array.length = 0; // clear array
mongodb.insert(items, function(){
// ...
});
};
我想将文档保存到RAM,然后保存到mongodb。此代码安全吗?
Mongodb服务器在欧盟,应用程序服务器在美国。它每秒向基地添加 2-3k 个项目。我想减少连接数量。我的问题:在保存到基数期间,变量可能会被修改(在"添加"中(
这取决于
天气mongodb.insert(docs);
一次性对所有元素执行操作。如果它在每个插入元素后触发回调,则您的代码不安全(因为您的数组将在第一个插入元素之后被清除(。
但是,如果操作对所有元素都是同步的,那么您的代码应该是安全的。
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在函数中添加数组元素的数值
- 无法通过数组映射绑定
- javascript中的数组出错
- 如何使用 node.js 比较两个 json 数组
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 根据id将json数组组合为一个json数组
- 如何通过数组更新角度子范围
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 在Javascript中转换对象数组
- 节点.js异步数组的安全性