node中的非同步操作

2021-09-25 08:33:26 字數 677 閱讀 8697

promise 物件有三種狀態:成功(fulfilled)、失敗(rejected)、等待(pending)

三種狀態只能發生兩種轉換(從pending—>fulfilled、pending—>rejected),並且狀態的轉換僅能發生一次。

promise.all([promise例項1,promise例項2])

all中,一次執行任務,即使有延時任務,也必須等待延時任務結束,後續任務才能進行

promise.race([promise例項1,promise例項2])

race中,任務快的先進行,其他延時任務後進行

generator生成器函式

function關鍵字後面跟乙個*來定義乙個generator函式

使用yield關鍵字來定義任務

通過next方法來便利執行任務 console.log( task.next() )

series表示序列

series([任務一,任務二],callback)

序列: 兩個任務在乙個任務線上,任意乙個任務崩潰,其餘任務全部無法執行

parallel表示並行

parallel([任務一,任務二],callback)

並行: 執行多個函式,每個函式都是立即執行,不需要等待其它函式先執行。傳給最終callback的陣列中的資料按照tasks中宣告的順序,而不是執行完成的順序。

node 非同步程式設計

我了解到的node非同步程式設計可分成 1.函式 2.pub sub模式 發布 訂閱模式 3.promise 4.generator 5.async await 一.直接 函式 該方法是最直接常用的非同步操作方式,比如在setinterval 和 ajax等會使用到,存在缺點有 1.不易閱讀並且容易...

node 中的buffer操作

建立 var buf1 buffer.from abc var buf2 buffer.from def 合併buffer物件 var newbuf buffer.concat buf1,buf2 直接 連線 var newbuf buf1 buf2 console.log newbuf.tostr...

Node教程 非同步API

導學 通過返回值拿結果 path.join 通過函式拿結果,fs.redfile 在node中有兩種api 同步的api還有非同步的api 同步所謂的同步就是一步一步的走 非同步當前的api不會堵塞後續的 的執行 對比不能通過返回值拿結果 這裡舉例說明 讀取檔案的操作是非同步的 fs.readfil...