欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

nodejs中解決異步嵌套循環(huán)和循環(huán)嵌套異步的問題

眾所周知,nodejs異步和循環(huán)對于初學(xué)者來說是一個很大的問題,今天我們就一起來了解和解決它

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、利川網(wǎng)站維護(hù)、網(wǎng)站推廣。

當(dāng)異步和循環(huán)同時出現(xiàn)的時候這個問題就會被放大很多倍.

慶幸的是,大神們研究出了async這個第三方模塊,解決了node中異步金字塔和循環(huán)問題

async這個模塊應(yīng)該是nodejs中使用最多的第三方模塊,每個月下載量3000W+

nodejs中解決異步嵌套循環(huán)和循環(huán)嵌套異步的問題

async基礎(chǔ)使用 : https://www.jb51.net/article/118526.htm

異步嵌套循環(huán),循環(huán)嵌套異步的例子:

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任務(wù)'); 
 //循環(huán) 
 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任務(wù)'); 
 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任務(wù)'); 
 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); 
 }) 
 //循環(huán)內(nèi)流程控制 
 async.waterfall(task2, function (err, result) { 
  if (err) return cb(err); 
  cb(); 
 }) 
} 

解釋下這個例子:
首先,最外層使用了async.waterfall這個方法控制task數(shù)組里的異步任務(wù)執(zhí)行順序,一共push了3個任務(wù)async.waterfall(task, function (err, result) {},每執(zhí)行完一次task里的任務(wù),重新對async_lists賦值;

然后,每一個task任務(wù)里都有一個同樣的循環(huán),循環(huán)async_lists這個數(shù)組里的每一個對象,使用async.eachSeries控制必須循環(huán)里所有任務(wù)執(zhí)行完畢才往下執(zhí)行;

最后,在eachSeries循環(huán)里又有一個異步task2任務(wù),這個任務(wù)分2步,分別打印了傳入進(jìn)來的async_list的值,而且每次打印都使用setTimeout暫停一秒才執(zhí)行下一個任務(wù).

預(yù)期的結(jié)果是 : 首先執(zhí)行task里的第一個任務(wù),分別打印2次async_lists這個數(shù)組里的每個對象,而且每次打印間隔一秒,然后對async_lists重新賦值,執(zhí)行task里的第二個任務(wù),重復(fù)以上操作.3次完成后打印 成功,結(jié)束任務(wù).

nodejs中解決異步嵌套循環(huán)和循環(huán)嵌套異步的問題

nodejs中解決異步嵌套循環(huán)和循環(huán)嵌套異步的問題

輸出的結(jié)果也是預(yù)期的結(jié)果.

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

文章名稱:nodejs中解決異步嵌套循環(huán)和循環(huán)嵌套異步的問題
當(dāng)前網(wǎng)址:http://aaarwkj.com/article48/igoeep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站域名注冊、服務(wù)器托管品牌網(wǎng)站建設(shè)網(wǎng)站收錄、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
亚洲一区有码在线观看| 亚洲成年人黄色小说网站| 欧美口爆吞精在线播放| 亚洲av色男人天堂网| 午夜av一区二区三区| 亚洲男人av天堂午夜在| 亚洲青涩精品一区二区三区| 中文字幕乱码人妻一区| 日本av成人激情视频| 精品国产91高清在线观看| 日本加勒比在线播放一区| 最新日本人妻中文字幕| 日韩成人在线视频观看| 日日插天天干夜夜操| 国产精品粗又长一区| 高清不卡av在线播放| 欧美国产精品一区二区免费| 欧美日韩一区二区三区666| 九九九视频精品免费九九| 日韩国产人妻一区二区| 亚洲一区二区婷婷久久| 日本久久久视频在线观看| 色婷婷精品二区久久蜜臀av| 狠狠综爱五月天的婷婷| 日本顶级片一区二区三区| 麻豆看片高清在线播放| 能在线播放的国产三级| 国产精品日韩理论在线| 亚洲免费麻豆一区二区三区| 亚洲精品另类中文字幕| 熟妇人妻精品一区二区| 精品亚洲一区二区三区四区| 永久免费看黄在线观看| 一区二区高清免费日本| 日日夜夜久久国产精品| 欧美国产综合欧美一区二区三区| 久久免费看少妇高潮av| 大香蕉欧美视频伊在线| 日韩欧美亚洲自拍另类| 久久香蕉香蕉公开视频| 精品国产一区二区三级四区|