国产探花免费观看_亚洲丰满少妇自慰呻吟_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)});            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 广灵县| 满城县| 桓台县| 广东省| 什邡市| 怀柔区| 北海市| 秭归县| 泗阳县| 丽水市| 临洮县| 赤壁市| 大竹县| 崇文区| 乌海市| 贡觉县| 门源| 儋州市| 余江县| 通海县| 班戈县| 简阳市| 厦门市| 来宾市| 莎车县| 丹凤县| 盐津县| 新宁县| 上饶县| 三都| 咸阳市| 德安县| 越西县| 马龙县| 堆龙德庆县| 奉新县| 饶阳县| 璧山县| 长汀县| 宿迁市| 泰顺县|