和 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 ...