国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Nodejs異步流程框架async的方法

2024-05-06 15:38:13
字體:
來源:轉載
供稿:網友

Async的簡單介紹:

Async是一個流程控制工具包,提供了直接而強大的異步功能。基于Javascript為Node.js設計,同時也可以直接在瀏覽器中使用。Async提供了大約20個函數,包括常用的map, reduce, filter, forEach等,異步流程控制模式包括,串行(series),并行(parallel),瀑布(waterfall)等。

https://github.com/caolan/async

我們常用的是以下四種:

串行無關聯 串行有關聯 并行無關聯 智能控制

1.async.series:串行無關聯:

多個函數或方法要依次執行,但是他們之間并沒有什么聯系,只有先后的順序,比如我要寫一個文件,寫完之后像用戶發送郵件,這兩者之間沒有必然的聯系,但是發郵件必須在寫文件完成之后。
async里有一個方法series可以實現這一流程,代碼實現如下:

var async = require('async');console.time('series');async.series({  one: function(callback) {    callback(null, 'one');//callback('i am err','one');異常處理  },  two: function(callback) {    callback(null, 'two');  },}, function(error, result) {  //最后結果  console.log('error: ' + error);  console.log('result: ' + result);  console.timeEnd('series');});// error: null// result: [object Object]// series: 4.472ms

2.async.waterfall:串行有關聯

瀑布流函數,串行執行數組中的每一個函數最后執行回調。 語法:async.waterfall(tasks,callback) 第一個參數tasks是一個數組,數組包含的是需要依次執行的函數。

第二個參數為回調函數,當瀑布流函數(即tasks數組中的函數)執行出現錯誤時會執行這個回調函數并將錯誤信息返回,當瀑布流函數無錯誤時,會在執行完tasks數組中包含的函數后執行這個回調函數。

用法示例: 一般用法:

async.waterfall([  myFirstFun,  mySecondFun,  myLastFun],function(err,result) { // result回調函數  // result 相當于tasks數組中最后一個函數(myLastFun)的返回值done  console.log(result);  // myLastFun})function myFirstFun(callback) {  callback(null,'one','two');}function mySecondFun(arg1,arg2,callback) {  // arg1 相當于 'one' ,arg2 相當于 'two'  callback(null,'three');}function myLastFun(arg1,callback) {  // arg1 相當于 'three'  callback(null,'done');}

3.async.parallel:并行無關聯

task并行運行函數集合,而不必等到上一個函數完成。如果任何函數發生錯誤,會立刻執行回調函數,并返回錯誤信息;若沒有發生錯誤,則會再所有tasks函數執行完畢之后用回掉函數將結果返回。

語法:async.parallel(tasks,callback) 代碼示例:

async.parallel([  function(callback) {    setTimeout(function() {      callback(null, 'one');    }, 200);  },  function(callback) {    setTimeout(function() {      callback(null, 'two');    }, 100);  }],function(err, results) {  console.log(result)});            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 武强县| 敖汉旗| 且末县| 清河县| 志丹县| 罗田县| 佛教| 兰考县| 博爱县| 临潭县| 天长市| 松潘县| 黑龙江省| 威海市| 遵义市| 资溪县| 乾安县| 香港| 阿拉善右旗| 缙云县| 山东| 南康市| 石景山区| 新乡市| 镇安县| 闽清县| 金溪县| 红桥区| 射阳县| 常山县| 辽宁省| 苏州市| 清河县| 娄底市| 望江县| 广元市| 栾城县| 旅游| 会东县| 昌乐县| 赣州市|