Async.js異步隊(duì)列編程庫(kù)基本使用介紹

Async Methods參數(shù)

coll

Array | Iterable | AsyncIterable | Object的集合

iteratee

需要執(zhí)行的異步函數(shù):有2種方式,普通帶回調(diào)的函數(shù),在函數(shù)之后最后必須調(diào)用回調(diào)函數(shù)傳入err和result。如果err為空,則表明當(dāng)前異步操作成功,將繼續(xù)下一個(gè)異步執(zhí)行,如果傳入err不為空,則整個(gè)異步隊(duì)列任務(wù)的狀態(tài)即為false終止執(zhí)行下面的任務(wù)。

(item, callback)=>{
    //....
    callback(err, result)
}

另一種方式是es7的async函數(shù),將return的值(即resolve的值)定義為此次的返回值,如果異常則自動(dòng)將異常信息(即reject值)用于error信息

const asyncFn = async ({ value, status }) => {
  return await Promise.resolve(value)
}

callback

所有異步方法執(zhí)行之后的回調(diào)函數(shù),參數(shù)為err,results

Methods返回值

如果方法中沒(méi)有傳入callback參數(shù),則返回promise

方式一:傳入callback

asyncMethods(coll, iteratee, (err,results)=>{
    if (err){
        console.error('err', err)
        return 
    }
    console.log('compelete', result)
})

方式二:不傳入callback,使用promise的then、catch方式

asyncMethods.then((result) => {
  console.log('compelete', result)
}).catch((err) => {
  console.error('err', err)
})

方法術(shù)語(yǔ)

Limit

異步隊(duì)列函數(shù),同一時(shí)間并發(fā)執(zhí)行的的函數(shù)的數(shù)量,仍屬于異步,只不過(guò)做了每次執(zhí)行的數(shù)量限制

Series

異步串行執(zhí)行,必須等到前一個(gè)異步任務(wù)狀態(tài)sucess,才執(zhí)行下一個(gè)任務(wù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容