Nodejs async.each 等待第一个循环
Nodejs async.each wait for first loop
>我正在尝试异步处理行Arr(假设 100 条记录),但我只想从数据库加载国家/地区列表一次以避免数据库连接。我正在尝试以下示例代码,但它正在打开数据库连接 100 次。
var countryList = null;
async.each(rowsArr, function(row, callback) {
if( countryList == null )
{
console.log("open database here to get country list and then assign to below variable");
countryList = countriesFromDatabase;
callback( countryList );
}
else
{
callback( countryList );
}
}, function(err){
console.log("all rows are processed");
});
它与 async.eachSeries 一起工作正常,但我希望它以异步方式工作。有什么建议吗?
- 从数据库中获取国家/地区
- 处理所有行
所以以下将起作用
function getCountries(callback) {
console.log("open database here to get country list and then assign to below variable");
callback(null,countriesFromDatabase);
}
getCountries(function(err, countriesFromDatabase) {
// use countries in following async loop
async.each(rowsArr, function(row, callback) {
callback(null, row); //process row here
}, function(err) {
console.log("all rows are processed");
});
});
它实际上做了它应该做的事情,所有一百行处理同时开始,并且它们正在传递 if 块。
您可能希望使用锁。 https://github.com/BorisKozo/node-async-locks
这样,您可以锁定国家/地区列表检查过程,以避免多个数据库连接。
相关文章:
- Handlebars访问第一个项目,然后访问后面的每个项目(在每个循环中)
- 如何返回与 javascript 中循环的其余部分不同的第一个循环
- Nodejs async.each 等待第一个循环
- 第一个元素和最后一个元素之间的连续循环
- 如何循环遍历表行,更改类,并使用"n〃;行数,并知道每行中第一个单元格的值
- 没有在每个循环中获得第一个形式
- 循环通过表格查找第一个具有 CSS CSSstablelisttdselect 的 TD 文本
- 为什么不't此循环返回到第一个索引
- jQuery:如何在不使用每个循环的情况下显示数组的第一个元素
- 如何删除 FOR EACH 循环中的第一个和最后一个值
- 如何在 Jquery/Javascript 中选择预定义选择的第一个和最后一个元素而不循环
- For 循环不迭代,输出的数据不超过第一个任务
- For-in 循环遍历对象在第一个键后停止
- jQuery animate 循环卡在第一个循环中
- 第一个循环不起作用
- 我如何编写一个 Javascript for 循环,以便在满足第一个条件时中断
- 文件上传获胜't触发以下循环(第一个循环除外)
- 第一个循环在第二个循环开始时停止
- 我怎样才能在不让第一个循环循环到第二个循环的情况下嵌套for循环呢?
- 在第一个循环之前初始化计数器