成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

NPM酷庫:async 強(qiáng)大的異步任務(wù)控制

xingpingz / 2128人閱讀

摘要:酷庫,每天兩分鐘,了解一個(gè)流行庫。庫是一個(gè)非常出色的異步控制庫,除了函數(shù)外,還提供了大量的其他工具函數(shù),在當(dāng)年沒有的時(shí)候,庫的作用尤為突出。

NPM酷庫,每天兩分鐘,了解一個(gè)流行NPM庫。

今天要了解的庫叫async,與ES7標(biāo)準(zhǔn)的async/await關(guān)鍵字不同,這里說的async只是NPM的一個(gè)庫,為了區(qū)別,下文中今天的主角叫async庫,async/await的關(guān)鍵字叫async函數(shù)。

在處理異步任務(wù)時(shí),為了加大性能表現(xiàn),我們常常會批量處理任務(wù),使用Promise.all()可以實(shí)現(xiàn)同時(shí)執(zhí)行多個(gè)Promise異步任務(wù):

let promises = tasks.map(async(task) => {
  // ...
});
await Promise.all(promises);

上述代碼中,tasks 是一個(gè)要處理的任務(wù)數(shù)組,通過調(diào)用數(shù)組map方法,分別為每個(gè)任務(wù)執(zhí)行一個(gè)異步的async函數(shù),map方法返回的是一個(gè)Promise數(shù)組,最后由Promise.all() 執(zhí)行Promise數(shù)組。

但是如果tasks數(shù)組非常大,可能給異步任務(wù)的后端帶來瞬間的巨大壓力,能不能在處理多個(gè)異步任務(wù)時(shí),指定并行的人數(shù)數(shù)量呢?

async庫

通過async庫提供的工具函數(shù)可以輕松完成上述要求:

const async = require("async");

async.mapLimit(tasks, 5, async(task) => {
  // ...
});

上述代碼中,我們調(diào)用了 async 庫的 mapLimit() 方法,該方法的第二個(gè)參數(shù)就是要并行處理的任務(wù)數(shù)量,這樣無論任務(wù)列表多么巨大,我們都可以有序完成,不會給后端數(shù)據(jù)庫等服務(wù)帶來瞬間的過大壓力。

async庫是一個(gè)非常出色的異步控制庫,除了mapLimit() 函數(shù)外,還提供了大量的其他工具函數(shù),在當(dāng)年沒有async/await的時(shí)候,async庫的作用尤為突出。

參考資料

https://github.com/caolan/async

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/107105.html

相關(guān)文章

  • NPM酷庫:promise 異步任務(wù)狀態(tài)管理

    摘要:是一個(gè)劃時(shí)代的庫,因?yàn)楫a(chǎn)生后,后續(xù)的標(biāo)準(zhǔn)的就是基于的,而機(jī)制讓人能夠以同步樣式的代碼處理異步任務(wù),徹底解決了回調(diào)問題。而的機(jī)制其實(shí)很簡單,它將異步任務(wù)抽象為三種狀態(tài)進(jìn)行中完成失敗。 NPM酷庫,每天兩分鐘,了解一個(gè)流行NPM庫。 JavaScript的優(yōu)勢就在于其基于異步事件模型,從而Node.js能夠擁有非常強(qiáng)大的性能表現(xiàn)。但是,JavaScript的callback方式做異步處理,...

    winterdawn 評論0 收藏0
  • NPM酷庫:pify 將異步函數(shù)Promise化

    摘要:酷庫,每天兩分鐘,了解一個(gè)流行庫。昨天我們了解到可以用庫將樣式庫轉(zhuǎn)化為樣式,同時(shí)庫也提供了強(qiáng)大在增強(qiáng)版的,如果我們需要轉(zhuǎn)化函數(shù),且僅需要使用標(biāo)準(zhǔn)的,那么使用有些大材小用。 NPM酷庫,每天兩分鐘,了解一個(gè)流行NPM庫。 所有Node.js標(biāo)準(zhǔn)庫和很多第三方庫提供的接口都是callback樣式的,在ES7標(biāo)準(zhǔn)時(shí)代,使用async/await配合Promise才是最佳實(shí)踐。 昨天我們了解到...

    ccj659 評論0 收藏0
  • NPM酷庫:q 增強(qiáng)版Promise

    摘要:酷庫,每天兩分鐘,了解一個(gè)流行庫。是一個(gè)實(shí)現(xiàn)庫,并且相對于標(biāo)準(zhǔn),提供了很多實(shí)用的工具函數(shù)。異步處理超時(shí)設(shè)置延時(shí)執(zhí)行其他關(guān)于返回值的工具函數(shù)比如的作用是獲取返回對象的某個(gè)屬性,作用等同于這種函數(shù)有很多,具體可以查看文檔。 NPM酷庫,每天兩分鐘,了解一個(gè)流行NPM庫。 昨天我們了解了如何使用Promise管理異步任務(wù),但是ES2015標(biāo)準(zhǔn)的Promise對象實(shí)現(xiàn)的接口非常有限,只包含 P...

    worldligang 評論0 收藏0
  • NPM酷庫:glob,通配符匹配文件名

    摘要:酷庫,每天兩分鐘,了解一個(gè)流行庫。經(jīng)常,我們的程序需要對磁盤文件進(jìn)行管理,就需要讀取磁盤上的文件列表,然后可能會需要判斷文件夾或文件名,還可能需要遞歸掃描子目錄。今天我們要了解的庫,就是專門用來掃描磁盤文件,并返回我們需要的文件類型。 NPM酷庫,每天兩分鐘,了解一個(gè)流行NPM庫。 經(jīng)常,我們的程序需要對磁盤文件進(jìn)行管理,就需要讀取磁盤上的文件列表,然后可能會需要判斷文件夾或文件名,還...

    verano 評論0 收藏0
  • NPM酷庫:winston 多路日志記錄

    摘要:昨天,我們認(rèn)識了庫的用法,用來控制輸出調(diào)試日志。今天我們再了解一個(gè)日志記錄的庫,一個(gè)多路傳輸?shù)娜罩居涗泿?。所謂多路傳輸,是指,你可以自定義多個(gè)日志儲存驅(qū)動,比如,將日志輸出到終端的同時(shí),將重要日志記錄到文件中,甚至寫到數(shù)據(jù)庫中。 NPM酷庫,每天兩分鐘,了解一個(gè)流行NPM庫。 昨天,我們認(rèn)識了debug庫的用法,用來控制輸出調(diào)試日志。但是,debug的特性適合于開發(fā)調(diào)試,并不適合程序記...

    荊兆峰 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<