nodejs中解决异步嵌套循环和循环嵌套异步的问题-创新互联
众所周知,nodejs异步和循环对于初学者来说是一个很大的问题,今天我们就一起来了解和解决它
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的峰峰矿网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!当异步和循环同时出现的时候这个问题就会被放大很多倍.
庆幸的是,大神们研究出了async这个第三方模块,解决了node中异步金字塔和循环问题
async这个模块应该是nodejs中使用最多的第三方模块,每个月下载量3000W+

async基础使用 : https://www.jb51.net/article/118526.htm
异步嵌套循环,循环嵌套异步的例子:
var async = require('async');
//初始化
var async_lists = [{ aa: 11, bb: 21 }, { aa: 31, bb: 41 }, { aa: 51, bb: 61 }, { aa: 71, bb: 81 }, { aa: 91, bb: 91 }];
var task = [];
task.push(function (callback) {
console.log('第一个task任务');
//循环
async.eachSeries(async_lists, function (async_list, cb) {
task_a(async_list, cb)
}, function (err) {
if (err) return callback(err);
//重新赋值
async_lists = [{ aa: 12, bb: 22 }, { aa: 32, bb: 42 }, { aa: 52, bb: 62 }, { aa: 72, bb: 82 }, { aa: 92, bb: 92 }];
callback()
});
})
task.push(function (callback) {
console.log('第二个task任务');
async.eachSeries(async_lists, function (async_list, cb) {
task_a(async_list, cb)
}, function (err) {
if (err) return callback(err);
async_lists = [{ aa: 13, bb: 23 }, { aa: 33, bb: 43 }, { aa: 53, bb: 63 }, { aa: 73, bb: 83 }, { aa: 93, bb: 93 }];
callback()
});
})
task.push(function (callback) {
console.log('第三个task任务');
async.eachSeries(async_lists, function (async_list, cb) {
task_a(async_list, cb)
}, function (err) {
if (err) return callback(err);
callback()
});
})
//最外层流程控制
async.waterfall(task, function (err, result) {
if (err) return console.log(err);
console.log('成功');
})
function task_a(async_list, cb) {
var task2 = [];
task2.push(function (cb) {
console.log('第一次 : ', async_list);
setTimeout(function () {
cb()
}, 1000);
})
task2.push(function (cb) {
console.log('第二次 : ', async_list);
console.log('---------------------------');
setTimeout(function () {
cb()
}, 1000);
})
//循环内流程控制
async.waterfall(task2, function (err, result) {
if (err) return cb(err);
cb();
})
}另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站标题:nodejs中解决异步嵌套循环和循环嵌套异步的问题-创新互联
网站URL:http://www.scyingshan.cn/article/cshsjd.html


咨询
建站咨询
