const combineAsyncError = tasks => {
const doGlide = {}
const handler = res => {
doGlide.out = res
// 預先定義好生成器
doGlide.node = (function*(){
const { out, data } = doGlide
const len = tasks.length
// yield把循環帶回了JavaScript編程的世界
while(doGlide.times < len)
yield noErrorAwait(tasks[doGlide.times++])
// 全部請求成功(生成器執行完畢)時,返回數據
out(data)
})()
doGlide.node.next()
}
return new Promise(res => handler(res))
}
Yield語法使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.