日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Javascript異步編程async實現過程詳解

瀏覽:156日期:2023-11-06 16:41:38

async官方DOC

介紹

node安裝

npm install async --save

使用

var async = require(’async’)

js文件

https://github.com/caolan/async/tree/master/dist

async提供了很多函數用于異步流程控制,下面是async核心的幾個函數,完整的函數請看async官方DOC

async.map([’file1’,’file2’,’file3’], fs.stat, function(err, results) { // results is now an array of stats for each file});async.filter([’file1’,’file2’,’file3’], function(filePath, callback) { fs.access(filePath, function(err) { callback(null, !err) });}, function(err, results) { // results now equals an array of the existing files});async.parallel([ function(callback) { ... }, function(callback) { ... }], function(err, results) { // optional callback});async.series([ function(callback) { ... }, function(callback) { ... }]);

series串行

series的作用就是按照順序一次執行。

async.series([ function(callback) { setTimeout(function() { callback(null, 1) }, 2000); }, function(callback) { callback(null, 2); }], function(err, results) { console.log(results); });

輸出結果為

[ 1, 2 ]

series函數的第一個參數可以是一個數組也可以是一個JSON對象,參數類型不同,影響的是返回數據的格式。

async.series({one: function(callback){callback(null, 1);},two: function(callback){callback(null, 2);}},function(err, results) {console.log(results);});

輸出為

{one: 1, two: 2}

waterfall瀑布流

waterfall和series函數都是按照順序執行,不同之處是waterfall每個函數產生的值都可以傳遞給下一個函數,series不可以。

async.waterfall([function(callback) {callback(null, ’one’, ’two’);},function(arg1, arg2, callback) {// arg1 now equals ’one’ and arg2 now equals ’two’console.log(’function 2’)console.log(’arg1: ’ + arg1)console.log(’arg2: ’ + arg2)callback(null, ’three’);},function(arg1, callback) {console.log(’function 3’)console.log(’arg1: ’ + arg1)// arg1 now equals ’three’callback(null, ’done’);}], function(err, result) {// result now equals ’done’console.log(result);});

輸出

function 2arg1: onearg2: twofunction 3arg1: threedone

waterfall第一個參數只能為數組。當中途有函數出錯,其err直接傳給最終callback,結果被丟棄,后面的函數不再執行。

parallel(tasks, [callback])

paraller函數是并行執行多個函數,每個函數都是立即執行,不需要等待其它函數先執行。傳給最終callback的數組中的數據按照tasks中聲明的順序,而不是執行完成的順序。

async.parallel([ function(callback){ callback(null, ’one’); }, function(callback){ callback(null, ’two’); }],function(err, results){});

tasks參數可以是一個數組或是json對象,和series函數一樣,tasks參數類型不同,返回的results格式會不一樣。

將示例中tasks的回調函數用setTimeout在1000毫秒后調用,然后在parallel的回調函數中輸出results,看一看整個過程花費了1s還是2s。

var async=require('async');async.parallel([ function(callback){ setTimeout(function(){ callback(null, ’one’) },1000); }, function(callback){ setTimeout(function(){ callback(null, ’two’) },1000); }],function(err, results){ console.log(results);});

parallelLimit(tasks, limit, [callback])

parallelLimit函數和parallel類似,但是它多了一個參數limit。 limit參數限制任務只能同時并發一定數量,而不是無限制并發,示例如下:

async.parallelLimit([ function(callback){ callback(null, ’one’); }, function(callback){ callback(null, ’two’); }],2,function(err, results){});

將示例中tasks的回調函數用setTimeout在1000毫秒后調用,limit參數設置為1,然后在parallelLimit的回調函數中輸出results,看一看整個過程花費了1s還是2s。

var async=require('async');async.parallelLimit([ function(callback){ setTimeout(function(){ callback(null, ’one’); }, 1000); }, function(callback){ setTimeout(function(){ callback(null, ’two’); }, 1000); }],1,function(err, results){ console.log(results);});

map(coll, iteratee, callbackopt)

map函數遍歷傳入的數組,并執行同樣的操作,最終返回結果

cool:數組

iteratee:對數組每一項要執行的函數

callbackopt:回調函數

async.map([1, 2, 3, 4, 5],function(item, callback) {callback(null, item + 5)},function(err, result) {console.log(result)})

[ 6, 7, 8, 9, 10 ]

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品chinese| 亚洲性视频h| 免费国产自线拍一欧美视频| 久久久777| 欧美激情国产在线| 国产第一亚洲| 国产99在线| 一区二区三区四区日本视频| 欧美日韩亚洲三区| 视频一区中文字幕精品| 一区二区亚洲视频| 亚洲一区有码| 日韩av在线播放中文字幕| 少妇精品久久久一区二区| 在线一区二区三区视频| 亚洲婷婷丁香| 啪啪亚洲精品| 国产精品巨作av| 精品在线网站观看| 中文在线а√天堂| 久久要要av| 在线视频精品| 日本国产欧美| 热久久国产精品| 日本亚洲最大的色成网站www| 亚洲一区二区免费看| 久久精品1区| 在线日韩av| 免费人成精品欧美精品| 欧美综合社区国产| 国产精品久久久久av蜜臀| 精品三区视频| 人在线成免费视频| 最新亚洲激情| 亚洲va久久| 国产福利资源一区| 日韩高清成人| 蜜桃久久av| 美女日韩在线中文字幕| 日本少妇精品亚洲第一区| 国产一区日韩| 日本高清不卡一区二区三区视频| 欧美精品一二| 日韩欧美四区| 国产福利电影在线播放| 欧美在线资源| 国产一级成人av| 国产在线一区不卡| 亚洲激情黄色| 久久99免费视频| 欧美精品激情| 国产精品久久久久久久久久久久久久久| 久久一区二区中文字幕| 亚洲va中文在线播放免费| 鲁大师影院一区二区三区| 国产一区二区精品| 久久精品99久久久| 日韩精品一卡| 亚洲欧洲美洲国产香蕉| 精品国产乱码| 亚洲欧美日韩综合国产aⅴ| 欧美国产另类| 欧美日韩国产精品一区二区亚洲| 国产日本精品| 久久精品不卡| 国产精品videossex久久发布| 精品一区亚洲| 国产黄色一区| 午夜欧美在线| 欧美日本精品| 久久99蜜桃| 日韩中文字幕麻豆| 在线一区av| 午夜av不卡| 水蜜桃久久夜色精品一区的特点| 久久永久免费| 午夜久久一区| 国产精品成人a在线观看| 欧美1区2区3区| **爰片久久毛片| 精品不卡一区| 国精品产品一区| 鲁大师精品99久久久| 免费视频一区二区三区在线观看| 免费在线欧美视频| 日本蜜桃在线观看视频| 男女精品网站| 国产精品毛片久久| 亚洲神马久久| www成人在线视频| 综合欧美亚洲| 久久九九精品| 日韩高清在线不卡| 喷白浆一区二区| 欧美激情精品| 自拍自偷一区二区三区| 久久精品中文| 国产精品视频一区二区三区 | 久久三级福利| 国产乱人伦丫前精品视频| 久久男女视频| 国产成人精品一区二区三区视频 | 欧美a在线观看| 日本aⅴ亚洲精品中文乱码| 欧美在线资源| 蜜臀av亚洲一区中文字幕| 日韩精品第一| 最新国产精品视频| 久久久天天操| 91九色综合| 亚洲一级淫片| 亚洲成av在线| 久久久久久一区二区| 国产精品极品国产中出| 中文不卡在线| 国产亚洲午夜| 久久天堂成人| 欧美日韩中文字幕一区二区三区| 久久av影视| 日韩精品导航| 欧美在线影院| 黄色精品网站| 欧洲av不卡| 999国产精品永久免费视频app| 欧美精品99| 国产精品xxxav免费视频| 国产精品日韩| 午夜久久99| 国产精品av一区二区| 亚洲精品国产嫩草在线观看| 亚洲精品在线a| 亚洲免费资源| 麻豆网站免费在线观看| 国产精品中文字幕制服诱惑| 视频一区二区三区在线| 久久久蜜桃一区二区人| 国产精品成人一区二区网站软件| 男女精品网站| 日韩欧美看国产| 不卡福利视频| 欧美日韩视频免费观看| 色婷婷综合网| 亚洲精品一区三区三区在线观看| 日韩成人精品一区| 99精品小视频| 久久人人97超碰国产公开结果| 国产91精品对白在线播放| 九九色在线视频| 女人av一区| 韩国三级一区| 久久国产主播| 欧美日韩一区二区综合| 亚洲一区激情| 中文无码日韩欧| 国产精品xxx| 精品一区二区三区在线观看视频| 国产精选在线| 日本欧美不卡| 婷婷亚洲五月| 亚洲精品麻豆| 青青伊人久久| 国产不卡精品| 蜜桃av.网站在线观看| 黄色在线一区| 亚洲欧美日韩综合国产aⅴ| 日韩精品免费一区二区夜夜嗨 | 91成人小视频| 一本一道久久a久久| 蜜臀久久99精品久久久久久9| 日本a级不卡| 久久wwww| 欧美日韩国产高清电影| 亚洲免费观看| 国产日韩一区二区三区在线| 日韩精品导航| 国产精品99视频| 欧美午夜精彩| 日韩av三区| 97精品一区| 亚洲人成高清| 国产精品探花在线观看| 久久久精品日韩| 超碰在线99| 蜜芽一区二区三区| 精品一区二区三区中文字幕视频| аⅴ资源天堂资源库在线| 国产亚洲永久域名| 欧美一级网址| 欧美成人综合| 亚洲乱亚洲高清| 午夜av成人| 综合国产精品| 亚洲h色精品| 91福利精品在线观看| 国产成人精品福利| 综合干狼人综合首页| 精品精品国产三级a∨在线| 99视频精品免费观看| 一区二区三区国产在线| 久久精品欧美一区|