nodejs async.whilst用法
生活随笔
收集整理的這篇文章主要介紹了
nodejs async.whilst用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由于js io 操作的異步特性,所以有很多的流程控制的方法,其中async的whilst主要是用于循環的流程控制,為什么會用到這個async.whilst呢?
有這樣一個問題:
var i = 0;
while(i<100){
func.doIo(function(){
dosomething();
// i++;
})
i++
}
假如你希望這個循環循環一百次,每一次執行一次里邊的io操作,結果你會發現基本上你沒辦法用while實現這個操作。無論你是把i++放在io的回調里邊還是放在外邊,結果都并不是你想的那樣。
這個時候就需要async.whilst.
看代碼:
var async = require('async');
var i = 0;
var j = 0;
async.whilst(
function(){
console.log('check'+i);
return i<6;
},
function(whileCb){
j=0;
i++;
console.log('while:'+i)
async.whilst(
function(){
//console.log('check'+j);
return j<5;
},
function(whileCb1){
j++;
console.log('whileCb1'+j);
whileCb1();
},
function(err){
console.log('second');
whileCb(); // invoke when inner whilst done
}
)
},
function(err){
console.log(err);
}
)
這段代碼內層的循環相當于一次io操作(注意:我這是要模擬IO操作,IO操作的特點是異步的,如果是純粹的邏輯運算,就用while就可以實現),我們要實現的目標是外循環循環一次,里邊循環5次。大家注意whileCb()所放的位置,這個位置的意思就是如果到達了條件才再次調用循環,可以仔細理解一下和while的區別。
async.whilst里邊有3個function,第一個是循環條件,第二個是循環體,第三個是結束或者err時進入。所以用whilst可以控制有io的流程控制。
送你幾顆比特幣玩玩:
https://www.coincola.app/acts/red-packet?type=invitation&packet_id=gBbVudr7GwuTF3r71ihUq8vDiuiNdAgL&lang=zh-CN
總結
以上是生活随笔為你收集整理的nodejs async.whilst用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国人民银行的前世今生
- 下一篇: 京东徐雷:百亿补贴优惠了老用户带来了新用