關於Node.js的 Async ,針對會使用這個套件的原因大概描述一下: 一、狀況 寫作Node.js專案時,由於單執行序與事件驅動的特性,勢必須要面對依序執行函式,或要拜訪每個陣列元素又要避免佔用執行序太久的狀況,先說明一下案例 1.依序執行function:如果碰到需要執行多個function,且每個function之間有前後關係時,如果不使用Promise語法或Async套件,你就只能一層又一層的寫下去,類似下面這樣 function a(callBack){ return callBack(null , "a done"); } function b(callBack){ return callBack(null , "b done"); } function c(callBack){ return callBack(null , "c done"); } a(function(error , rtn){ console.log(rtn); b(function(error , rtn){ console.log(rtn); c(function(error , rtn){ console.log(rtn); }); }); }); //output: a done b done c done 如同上面範例看到的,為了保證依序執行,必須這樣一層一層的寫下去,請想想一下四層或五層,中間再加上一些邏輯判斷,有些要執行有些又不需要執行等,原始碼會變得很複雜難以閱讀跟維護。 2.執行迴圈辦法陣列物件: 比如你有一個物件陣列,要一一比對每個值,挑選出需要的物件 var array1 = [{ type:1,name:"p1"} , { type:2,name:"p2"} , { type:1,name:"p3"}]; var array2 = []; array1.forEach(function(item){ if(item.type