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ù)。