1. 程式人生 > >Node.js中async庫同步介面介紹

Node.js中async庫同步介面介紹

  • series: 序列執行,一個函式陣列中的每個函式,每一個函式執行完成之後才能執行下一個函式。
  • parallel: 並行執行多個函式,每個函式都是立即執行,不需要等待其它函式先執行。傳給最終callback的陣列中的資料按照tasks中宣告的順序,而不是執行完成的順序。
  • whilst: 相當於while,但其中的非同步呼叫將在完成後才會進行下一次迴圈。
  • doWhilst: 相當於do…while, doWhilst交換了fn,test的引數位置,先執行一次迴圈,再做test判斷。
  • until: until與whilst正好相反,當test為false時迴圈,與true時跳出。其它特性一致。
  • doUntil: doUntil與doWhilst正好相反,當test為false時迴圈,與true時跳出。其它特性一致。
  • forever: 無論條件迴圈執行,如果不出錯,callback永遠不被執行。
  • waterfall: 按順序依次執行一組函式。每個函式產生的值,都將傳給下一個。
  • compose: 建立一個包括一組非同步函式的函式集合,每個函式會消費上一次函式的返回值。把f(),g(),h()非同步函式,組合成f(g(h()))的形式,通過callback得到返回值。
  • applyEach: 實現給一陣列中每個函式傳相同引數,通過callback返回。如果只傳第一個引數,將返回一個函式物件,我可以傳參呼叫。
  • queue: 是一個序列的訊息佇列,通過限制了worker數量,不再一次性全部執行。當worker數量不夠用時,新加入的任務將會排隊等候,直到有新的worker可用。
  • cargo: 一個序列的訊息佇列,類似於queue,通過限制了worker數量,不再一次性全部執行。不同之處在於,cargo每次會載入滿額的任務做為任務單元,只有任務單元中全部執行完成後,才會載入新的任務單元。
  • auto: 用來處理有依賴關係的多個任務的執行。
  • iterator: 將一組函式包裝成為一個iterator,初次呼叫此iterator時,會執行定義中的第一個函式並返回第二個函式以供呼叫。
  • apply: 可以讓我們給一個函式預繫結多個引數並生成一個可直接呼叫的新函式,簡化程式碼。
  • nextTick: 與nodejs的nextTick一樣,再最後呼叫函式。
  • times: 非同步執行,times可以指定呼叫幾次,並把結果合併到陣列中返回
  • timesSeries: 與time類似,唯一不同的是同步執行

相關推薦

Node.jsasync同步介面介紹

series: 序列執行,一個函式陣列中的每個函式,每一個函式執行完成之後才能執行下一個函式。 parallel: 並行執行多個函式,每個函式都是立即執行,不需要等待其它函式先執行。傳給最終callback的陣列中的資料按照tasks中宣告的順序,而不是執行完成的順序。 whilst: 相當於while,但

node.js使用async完成同步呼叫

node.js讓初學者最頭疼之處,莫過於徹頭徹尾的非同步機制。所有程式碼,在排版上的先後順序並不決定了其呼叫順序。然而人的思維恰恰是按照同步順序流轉的,於是令人叫苦不迭的情況應運而生——你理所當然的編寫了一段看似順序執行的程式碼,激動一run,哎喲我滴媽——null、顛倒的

node.js同步/非同步處理模組async解析

Async非同步處理模組! 安裝很簡單,就跟普通的安裝模組一樣就行了 npm install --save-dev async 這樣就安裝成功了! 接下來就是引用了,在程式碼裡引用模組: var async = require('async'); 這樣引用也就ok了

Node.js異步async

有關 node.js ron pan 分享 col ima bsp inf async的使用需要安裝第三方包 1.串行無關聯 async.series 函數依次執行,後面不需要調前面步驟的結果 程序執行時間為所有步驟之和 2.並行無關聯 async.paraller 某

node.js的包管理之npm使用介紹

一、NPM介紹 NPM 是Node.js的包管理工具。它的重要性就像 gem 之於 Ruby 一樣。Node.js 與 NPM的關係是密不可分的。 1. NPM 常用命令 NPM 預設是與Node.js 一起安裝的,可以在命令列中輸入npm ,驗證是否安裝,如圖所示: &n

Node.jspackage.json的版本號詳解(^和~區別)

當我們檢視package.json中已安裝的庫的時候,會發現他們的版本號之前都會加一個符號,有的是插入符號(^),有的是波浪符號(~)。那麼他們到底有什麼區別呢?先貼一個例子,對照例子來做解釋: "dependencies": { "bluebird": "^3.3.4", "body-parser": "

深入理解Node.jsAsync和Await函式

這篇文章主要介紹了Node.js中的Async和Await函式的相關知識,非常不錯,寫的十分的全面細緻,具有一定的參考價值,對此有需要的朋友可以參考學習下。如有不足之處,歡迎批評指正。 在本文中,你將學習如何使用Node.js中的async函式(async/await)來簡化c

node.js“模組”Module的概念和介紹

模組 Module 在計算機程式的開發過程中,隨著程式程式碼越寫越多,在一個檔案裡程式碼就會越來越長,越來越不容易維護。 為了編寫可維護的程式碼,我們把很多函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的程式碼就相對較少,很多程式語言都採用這種組織程式碼的方式。在No

node.js的http.response.end方法使用說明

-c 方法 net ron blog 分享 函數 客戶端 pan 轉載自:http://m.jb51.net/article/58468.htm 本文介紹了http.response.end的方法說明、語法、接收參數、使用實例和實現源碼,需要的朋友可以參考下 方法

Node.js的異步I/O是如何進行的?

ioc 而是 網絡 調用 發現 回調函數 異步調用 技術 如何 Node.js的異步I/O通過事件循環的方式實現。其中異步I/O又分磁盤I/O和網絡I/O。在磁盤I/O的調用中,當發起異步調用後,會將異步操作送進libuv提供的隊列中,然後返回。當磁盤I/O執行完成之後,會

node.jsmysql連接池的使用

lease package lba ref table mysql mod select something https://cnodejs.org/topic/58378543bde2b59e06141f5a 起初的做法是創建一個連接然後使用,後來發現一段時間後會出現

如何在Node.js合並兩個復雜對象

node sum cond indexof 過程 我們 http str first  通常情況下,在Node.js中我們可以通過underscore的extend或者lodash的merge來合並兩個對象,但是對於像下面這種復雜的對象,要如何來應對呢?   例如我有以下兩

Node.jsexports與module.exports的區別

個數 error: years 信息 輸出 一個數 mil 導出 原來 一、exports使用 test.js exports.name = function() { console.log(‘張三‘); }; index.js使用 var test= req

Node.jsrequire()單例

div 改變 大小寫 get() 模塊 console 小寫 require req 我剛接觸Node.js沒多久,對於其中的一些知識還不是很了解。例如在使用require()方法來家載模塊時,我就很好奇模塊中的對象是一種怎樣的狀態,是每次調用require()的時候裏面的

Node.js在保持目錄結構的情況下壓縮指定目錄

事件 信息 處理 方式 evel ack api not 說明 最近在做一個文件升級的功能,需要從下載服務器中指定目錄下的文件。在學習了zlib後發現這個模塊達不到這個功能 在查找資料後發現後發現 archiver 模塊很好用,不過我也發現大部分中文資料沒有如果查詢壓縮進度

node.js的路由(url)初步

UC out root 目錄 port name login 方法 是個 1、建立n4_root.js var http = require(‘http‘); var url = require(‘url‘); //這是node.

萌新如何學node.jsreadline和readline-sync?

left nod 習慣 col ins res mage line 還要   園友們看到這個標題可能覺得是教萌新如何學習node.js中的readline,其實我就是萌新,講述一下我如何發現這個模塊的。   今天,我在思考今天該如何學習js的時候,在csdn發現了一篇“學生

編程學習之如何在Node.js優化服務器端渲染?[圖]

模型 如果 高峰 字節 may 異步化 當我 node.js res 編程學習之如何在Node.js中優化服務器端渲染?[圖]在 Airbnb,我們花了數年時間將所有前端代碼遷移到 React 架構,Ruby on Rails 在 Web 應用中所占的比例每天都在減少。實際

Node.js使用pipe拷貝大文件不能完全拷貝的解決辦法

ads 沒有 str pat some pipe reads 大文件 close 原來的代碼如下: var readable = fs.createReadStream( filepath ); var writable = fs.createWriteStream( ou

node.jshttp通訊模塊

app.js access req 自動重啟 listen 屬於 自動 res 否則 創建一個服務器 首先建立一個js文件,命名為app.js寫入內容: const http=require(‘http‘); http.createServer((request,res