Promise的幾個擴充套件API總結

2021-09-12 17:45:58 字數 2694 閱讀 1063

和 promise.all 相反,當所有的promise被拒絕之後,none方法執行完成的決議,如果存在乙個promise執行完成的決議,none方法則執行拒絕

promise.none = function(promises) )

}))}

const promisesfornonetest1= [

promise.reject('1'),

promise.reject('2'),

promise.resolve('3'),

promise.reject('4'),

] promise.none(promisesfornonetest1).then(res => , res => )

const promisesfornonetest2= [

promise.reject('1'),

promise.reject('2'),

promise.reject('3'),

promise.reject('4'),

] promise.none(promisesfornonetest2).then(res => , res => )

忽略被拒絕的promise,只需要有乙個完成的promise,any方法就執行完成操作,如果全部的promise都被拒絕,any方法執行拒絕操作

promise.any = function(promises) , () => ) 

})).then(() => )

})}

const promisesforanytest1= [

promise.reject('1'),

promise.resolve('2'),

promise.reject('3'),

promise.resolve('4'),

promise.resolve('5'),

] promise.any(promisesforanytest1).then(res => , res => )

const promisesforanytest2= [

promise.reject('1'),

promise.reject('2'),

promise.reject('3'),

promise.reject('4'),

promise.reject('5'),

] promise.any(promisesforanytest2).then(res => , res => )

類似race,但是只要有乙個promise決議為完成(忽略前邊被拒絕的promise),就忽略後邊的promise

promise.first = function(promises) 

})})

})}

const promisesforfirsttest1= [

promise.reject('1'),

promise.resolve('2'),

promise.reject('3'),

promise.resolve('4'),

] promise.first(promisesforfirsttest1).then(res => , res => )

const promisesforfirsttest2= [

promise.reject('1'),

promise.resolve('2'),

promise.reject('3'),

promise.resolve('4'),

] promise.first(promisesforfirsttest2).then(res => , res => )

在第二個方法 any 中,用到了promise.all的方法,裡邊使用array.prototype.map方法處理了所有的的promise,當前這個promise.map方法則希望把他倆弄到一起

promise.map方法希望實現乙個處理批量非同步操作的並行迭代方法,本質上是利用promise.all進行二次封裝

promise.map = function(promises, resolvecallback, rejectcallback) , error => )

}))}

const promisesformaptest1= [

promise.resolve('1'),

promise.resolve('2'),

promise.resolve('3'),

promise.resolve('4'),

] promise.map(promisesformaptest1, result => , result => ).then(res => , res => )

const promisesformaptest2= [

promise.resolve('1'),

promise.resolve('2'),

promise.reject('3'),

promise.resolve('4'),

] promise.map(promisesformaptest2, result => , result => ).then(res => , res => )

Promise的幾個擴充套件API總結

和 promise.all 相反,當所有的promise被拒絕之後,none方法執行完成的決議,如果存在乙個promise執行完成的決議,none方法則執行拒絕 promise.none function promises const promisesfornonetest1 promise.rej...

Promise的幾個重要api

1.非promise物件,非thenable物件 promise.resolve 1 then console.log 1 2.promise物件成功狀態 const p2 new promise resolve resolve 2 promise.resolve p2 then console.l...

Promise 靜態api用法總結

promise 靜態方法 allsettled 返回結果是個物件陣列,物件陣列中值的順序和傳入promise時的順序一致。返回所有promise的執行結果,只能在then中獲取,不執行catch。每個物件包含 status promise狀態 value promise執行成功的結果 reason ...