非同步函式的序列與並行

2021-09-13 23:45:05 字數 1100 閱讀 9698

通過返回乙個物件的形式,實現對非同步函式進行序列、並行、全執行完畢的操作

實現如下:
const

queue=(

)=>

;// 判斷是否全部完成

const

then

=(callback)

=>

if(task > list.length -1)

task ++;}

;// 二次封裝為合適的非同步函式

const

async

=(fn)

=>;}

;// 新增任務

const

add=

(...asyncqueue)

=>

;// 非同步序列執行

const

runasync=(

)=>

;// 同步並行執行

const

run=()

=>

;// 全部執行完成

const

runall

=function()

;// 返回乙個物件

return

};

使用如下:

首先二次封裝下非同步函式

const

fn1=

(cb)

=>

,1000);

};const

fn2=

(cb)

=>

,3000);

};const

fn3=

(cb)

=>

,1000);

};

新增非同步函式為乙個陣列到佇列中

const q =

queue()

;q.add(

...[fn1, fn2, fn3]

);

序列、並行、全部執行完畢的使用

q.

runall()

.then((

)=>

);

序列與並行 同步和非同步序列通訊

一 序列通訊中資料按位傳輸,即一次傳輸一位 二 並行傳輸中資料按位元組傳輸,即一次傳輸8位。三 優缺點 並行速度快,但造價高,內部的多根線纜同步較困 難,相互之間易產生干擾,在遠距離通訊中多用串 行通訊,計算機內部大多使用並行通訊。四 使用序列通訊的介面是序列介面,使用並行通訊的介面是並行介面。序列...

非同步函式的序列執行和並行執行

對於非同步函式的序列和並行執行如果處理不好會出現js的 地獄,在這方面async.js是乙個不錯的解決方案,有時為了縮小 體積自己diy乙個 序列執行arr中的函式 var series function arr,callback else process 並行執行arr中的函式 var paral...

非同步與並行 大話目錄

寫過很多篇非同步,執行緒,並行的文章了,我覺得有必要總結一下了,然後把目錄整理一下,分享給大家,這麼大家看的時候方便些!非阻塞 非同步操作無須額外的執行緒負擔,並且使用 的方式進行處理,在設計良好的情況下,處理函式可以不必使用共享變數 即使無法完全不用,最起碼可以減少 共享變數的數量 減少了死鎖的可...